Angularjs http.Holen Sie scheitern (aber ich sehe die Daten zurückgegeben wurde)
Bin ich zu Fuß durch die Angularjs-Telefone tutorial und wollen, dass die Handys JSON von einem remote-server.
$http.get('http://myserver.com/phones.json').success(function(data) {
$scope.phones = data;
});
Dieser konnte aufgrund CORS, ich war senden ein OPTIONEN nicht einen GET-request, also habe ich diese erste Zeile der controller -
delete $http.defaults.headers.common['X-Requested-With'];
Kann ich jetzt sehen, in der Charles, der einen nicht OPTIONS-Anfrage wird an myserver.com und dass die Telefone von JSON ist in der Antwort. Aber der http.erhalten ist noch immer nicht mit status 0 und 'data' ist die null.
Nicht sicher, was zu versuchen nächsten. Alle Erkenntnisse geschätzt.
- Versuchen Sie
?callback=?
an das Ende des url
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es sollte nicht machen Sie eine OPTIONS-Anfrage für eine BEKOMMEN, so dass richtig klingt. Ich denke, was Sie tun möchten, ist:
Ich denke, dass Sie verwenden möchten
then()
, die zwei Funktionen als Argumente — die erste für den Erfolg, und die zweite für Fehler.$http.get()
gibt eine Verheißung, die beaufschlagt wird vonthen()
.Auch, die Sie wahrscheinlich verwenden wollen
$resource
statt$http
. Es bietet einen höheren Grad der Abstraktion und ermöglicht eine wiederverwendbare Stil, http://docs.angularjs.org/api/ngResource.$RessourceEDIT:
Überprüfen Sie heraus die Winkel-debug-tool hier. Es zeigt Ihnen, was verfügbar ist in Bereichen, und zeigt performance-Daten.
$http.defaults.useXDomain = true;
Gut, wenn Sie eine cross-domain-Anfrage, es Recht zu machen, die OPTION-Anfrage als pre-flight-Anfrage wissen, ob Sie dürfen.
Wenn die CORS scheitert Ihr browser die Daten empfangen, aber er wird keinen Fehler werfen.
Also, entweder setzen Sie Ihre html in der gleichen Domäne oder fügen Sie die CORS auf dem backend (das ist schwieriger).
Hier ist ein gutes tutorial, das die cross-domain WIRD mithilfe des $http.jsonp-Methode. Keine hacks in die Header.
http://net.tutsplus.com/tutorials/javascript-ajax/building-a-web-app-from-scratch-in-angularjs/