2016-09-28 1 views
0

In meiner Anwendung alle Server-Antworten sind wie folgt:Angular http Interceptor Antwortfunktion entfernt Nachricht param von Server-Antwort

response = { 
    data: {}, 
    status: STATUS_CODE, 
    message: STRING_MESSAGE 
} 

I Winkel des http-Antwort-Funktion verwenden möchten, für einige meiner Web Service eine Antwortnachricht angezeigt werden in eine Toastkomponente. Im Interceptor habe ich eine einfache Antwort-Funktion:

response = function (res) { 
    console.log(res); 
    return res; 
} 

, die eine Antwort Objekt protokolliert:

{ 
    data:{}, // object response.data 
    config: {}, 
    status: 200, 
    statusText: 'OK', 
    headers: function() 
} 

Es gibt keine Meldung Parameter, den Server sendet. Bedeutet das, dass der Interceptor einen Teil meiner Server-Antwort löscht? Eine der Lösungen wäre, einen statusText-Wert zu überschreiben. Ich habe versucht, Server-Antwort wie

response = { 
     data: {}, 
     status: STATUS_CODE, 
     statusText: STRING_MESSAGE 
    } 

zu ändern, aber es hat nicht funktioniert, ich hatte noch status: ‚OK‘ und immer noch keine Nachricht param in Abfangjäger Antwortobjekt

+0

die Serverantwort ist in 'Data' Eigenschaft. Das sollte kein leeres Objekt sein oder etwas ist in der tatsächlichen Anfrage falsch. – charlietfl

+0

Die Antwort des antkämpfers ist nicht leer und entspricht der response.data des Servers, hat also keinen Status und kein Nachrichtenattribut. – magneto

+0

dann überprüfen Sie die tatsächliche Anfrage in Dev Tools Netzwerk und sehen genau, was gesendet wird. Auch eine Demo in Plunker würde helfen. hast du vielleicht vergessen, etwas im Abfangjäger zurückzugeben? nicht genug Kontext angezeigt und es ist ein bisschen verwirrend wie gezeigt – charlietfl

Antwort

0

Daten überprüfen Eigenschaft in Ihrer Interceptor Antwort. Es könnte so sein

{ 
    data:{  
     data: {}, 
     status: STATUS_CODE, 
     message: STRING_MESSAGE 
    }, // object response.data 
    config: {}, 
    status: 200, 
    statusText: 'OK', 
    headers: function() 
} 
Verwandte Themen