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?
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:
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.
Tags und Links angular2-http