2015-03-31 1 views
5

J'obtiens des données du serveur distant en utilisant AngularJS $ http. Il fonctionne dans le navigateur mais pas dans l'application développeur de téléphone. Mais, ajax travaille. Quel pourrait être le problème!!

Voici le code que j'utilise.

$http({ 
    url: domain + "modulesinfo/list", 
    method: "GET", 
    //Added after some research // I'm testing on local server 
    headers: { 
     'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' 
    } 
}) 
.success(function(data){ 
    $scope.modules = data.response; 
    $scope.$apply(); 
}) 
.error(function(){ 
    navigator.notification.alert("You are damned", function(){ 

    }, "Not working", "OK"); 
}); 

J'ai essayé d'ajouter l'en-tête après quelques recherches, mais cela n'a pas fonctionné.

+2

Il peut s'agir d'une [restriction CORS] (http://en.wikipedia.org/wiki/Cross-origin_resource_sharing). Pouvez-vous accéder à une console de développement sur l'appareil que vous testez? – Blackus

+0

Je suis capable de me connecter via adb logcat. –

+0

Et je suis sûr que Access-Control-Allow-Origin est déjà là en en-tête de mon fichier PHP, je reçois une réponse de. –

Répondre

1
$http.jsonp(domain + "modulesinfo/list?callback=JSON_CALLBACK") 
.success(function(data){ 
    console.log(data); 
    $scope.modules = data.response; 
}) 
.error(function(){ 
    console.log(data); 
}); 

Ceci a résolu mon problème. J'espère que cela aidera les autres. Ajouter le rappel = JSON_CALLBACK avec l'URL fonctionne dans mon cas.

+0

Donc, votre point de terminaison était une ressource jsonp au lieu d'un point de repos? Cela aurait été une information utile à fournir dans la question. – Claies