2017-04-06 9 views
-1

Warum $ http Service beendet die Anfrage und lädt dann die JSON-Daten?

Minimal code example

var vm = this; 
$http 
    .get("/getData") 
    .then(function (data) { 
    // promise is resolved but I still don't have access to the data 
    vm.data = data; 
    }); 

Wenn ich dies zu testen in Chrome-Browser sehe ich folgendes:

  • Anfrage anhängig ("/ getData")
  • Statuscode: 200 (die Anfrage Oberflächen)
  • in Vorschau oder Antwort Register keine Antwortdaten
  • an der Unterseite des Inspektors Google verfügbar ist: 1,5 MB (Antwortdaten) übertragen
  • json Antwortdaten nach 5 Sekunden

Wenn die Anforderung Oberflächen erhältlich ist (und zeigt Status 200 OK) Ich erwarte Zugriff auf die Antwortdaten (die noch nicht heruntergeladen ist).


Fazit

Auch wenn die Anforderung endet mit Code Status 200 OK und mein Versprechen ist fertig, ich habe noch 5 Sekunden warten, bis die Daten übertragen werden.

+0

Können Sie ein testbares Beispiel angeben? Niemals hatte dieses Problem, also könnte Ihre Implementierung das verursachen. –

+0

von der 5 sec Antwort ist es Frage vom Backend ich denke, aber ich frage mich, woher wissen Sie, dass es 5 Sekunden dauert ?? Bitte bieten Sie einen Plummer –

+0

Was machst du? vom Backend herunterladen? Und was ist 'das' hier? Sie können versuchen mit '$ scope.postData = data.data' –

Antwort

1

Für angular $http Dienst, Netzwerk Registerkarte zeigt zwei Arten von Anforderungen für eine einzelne API-Aufruf von denen API mit OPTION Methodenaufruf ist. OPTION Methode ermöglicht dem Client, die Optionen und/oder Anforderungen, die mit einer Ressource oder den Fähigkeiten eines Servers verbunden sind, zu ermitteln, ohne eine Ressourcenaktion oder einen Ressourcenabruf einzuleiten. Der zweite kann Ihr tatsächlicher API-Aufruf sein. Sie können die Registerkarte Netzwerk überprüfen. Dies ist $http Service-Standardverhalten.

+0

@ que1326: Überprüfen Sie, ob auf der Netzwerkregisterkarte zwei Aufrufe für einzelne API-Aufrufe angezeigt werden, von denen eine die OPTION-Methode ist. –