Angular2 Http Antwort fehlender Kopfzeilenschlüssel / -werte

8

Ich mache einen http.patch-Aufruf an eine REST-API, die erfolgreich ist (Status 200), aber nicht alle Antwort-Header-Schlüssel / Werte werden zurückgegeben. Ich interessiere mich für den ETag Schlüssel / Wert.

Hier ist ein Codeausschnitt:

%Vor%

Wenn Sie denselben Aufruf mit einem REST-Client (Post-Manager) durchführen, enthält der Antwort-Header:

%Vor%

Ist der fehlende Antwort Header Schlüssel / Werte ein Fehler? Kann das Problem mit der Konfiguration gelöst werden?

    
altab 01.02.2016, 06:32
quelle

1 Antwort

5

Dies ist kein Winkelproblem, sondern eher ein CORS-Problem. Per Definition gibt CORS nur sechs "einfache" Header zurück: Cache-Control, Content-Sprache, Content-Type, Expires, Last-Modified und Pragma.

Aus diesem Grund sehen Sie den vollständigen Satz, wenn Sie einen REST-Client wie Postman verwenden. Wenn Sie jedoch von Ihrem Angular-Client aus anrufen, sehen Sie nur das von CORS begrenzte Set.

Um das Problem zu lösen, müssen Sie einen Header Access-Control-Expose-Headers in den folgenden Zeilen hinzufügen:

%Vor%

Beachten Sie, dass Sie möglicherweise den serverseitigen Code erweitern müssen, um die erforderlichen bereitgestellten Header zu unterstützen.

In meinem Fall (C #) habe ich den EnableCors -Aufruf (innerhalb von WebApiConfig) überarbeitet, um "ETAG" in die Liste der exposed header (der vierte Parameter der EnableCorsAttribute-Funktion) aufzunehmen.

    
Steve S 18.05.2016 17:57
quelle

Tags und Links