Access-Control-Allow-Headers
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
Der HTTP Access-Control-Allow-Headers Antwort-Header wird als Antwort auf eine Preflight-Anfrage verwendet, um die HTTP-Header anzugeben, die während der tatsächlichen Anfrage verwendet werden können. Dieser Header ist erforderlich, wenn die Preflight-Anfrage Access-Control-Request-Headers enthält.
Hinweis:
Die CORS-safelisted Anfrage-Header sind immer erlaubt und werden normalerweise nicht in Access-Control-Allow-Headers aufgeführt, es sei denn, es besteht die Notwendigkeit, die zusätzlichen Safelist-Einschränkungen zu umgehen.
| Headertyp | Antwort-Header |
|---|---|
| Verbotener Header-Name | Nein |
Syntax
Access-Control-Allow-Headers: <header-name>
Access-Control-Allow-Headers: <header-name>, <header-name>
Access-Control-Allow-Headers: *
Direktiven
<header-name>-
Der Name eines unterstützten Anfrage-Headers. Der Header kann eine beliebige Anzahl von Headern auflisten, getrennt durch Kommas.
*(Wildcard)-
Jeder Header. Der Wert
*wird nur als spezieller Wildcard-Wert für Anfragen ohne Anmeldeinformationen gezählt (Anfragen ohne HTTP-Cookies oder HTTP-Authentifizierungsinformationen). Bei Anfragen mit Anmeldeinformationen wird es als der wörtliche Header-Name*ohne spezielle Semantik behandelt. DerAuthorizationHeader kann nicht als Wildcard verwendet werden und muss immer explizit aufgeführt werden.
Beispiele
Implementierung eines benutzerdefinierten Headers
Unten sehen Sie ein Beispiel für einen Access-Control-Allow-Headers Header. Er zeigt an, dass ein benutzerdefinierter Header namens X-Custom-Header zusätzlich zu den CORS-safelisted Anfrage-Headern von CORS-Anfragen an den Server unterstützt wird.
Access-Control-Allow-Headers: X-Custom-Header
Unterstützung mehrerer Header
Dieses Beispiel zeigt Access-Control-Allow-Headers, wenn die Unterstützung für mehrere Header angegeben wird.
Access-Control-Allow-Headers: X-Custom-Header, Upgrade-Insecure-Requests
Umgehung zusätzlicher Einschränkungen bei CORS-safelisted Headern
Obwohl CORS-safelisted Anfrage-Header immer erlaubt sind und normalerweise nicht in Access-Control-Allow-Headers aufgeführt werden müssen, wird das Auflisten dennoch die zusätzlichen Einschränkungen umgehen, die gelten.
Access-Control-Allow-Headers: Accept
Umgang mit Preflight-Anfragen
Sehen wir uns ein Beispiel für eine Preflight-Anfrage an, die Access-Control-Allow-Headers beinhaltet.
Anfrage
Zuerst ist die Preflight-Anfrage eine OPTIONS-Anfrage, die eine Kombination der drei Preflight-Anfrage-Header beinhaltet: Access-Control-Request-Method, Access-Control-Request-Headers, und Origin.
Die Preflight-Anfrage unten teilt dem Server mit, dass wir eine CORS GET-Anfrage mit den in Access-Control-Request-Headers aufgeführten Headern (Content-Type und X-Requested-With) senden möchten.
OPTIONS /resource/foo
Access-Control-Request-Method: GET
Access-Control-Request-Headers: content-type,x-requested-with
Origin: https://foo.bar.org
Antwort
Wenn die durch die Preflight-Anfrage angegebene CORS-Anfrage autorisiert ist, antwortet der Server auf die Preflight-Anfrage mit einer Nachricht, die den erlaubten Ursprung, die Methoden und die Header angibt. Unten sehen wir, dass Access-Control-Allow-Headers die angeforderten Header enthält.
HTTP/1.1 200 OK
Content-Length: 0
Connection: keep-alive
Access-Control-Allow-Origin: https://foo.bar.org
Access-Control-Allow-Methods: POST, GET, OPTIONS, DELETE
Access-Control-Allow-Headers: Content-Type, x-requested-with
Access-Control-Max-Age: 86400
Wenn die angeforderte Methode nicht unterstützt wird, antwortet der Server mit einem Fehler.
Spezifikationen
| Specification |
|---|
| Fetch Standard # http-access-control-allow-headers |
Browser-Kompatibilität
BCD tables only load in the browser