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.

* Some parts of this feature may have varying levels of support.

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

http
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. Der Authorization Header 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.

http
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.

http
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.

http
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.

http
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
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
# http-access-control-allow-headers

Browser-Kompatibilität

Report problems with this compatibility data on GitHub
desktopmobile
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Access-Control-Allow-Headers
Authorization header is not covered by wildcard
Wildcard (*)

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
No support
No support
User must explicitly enable this feature.

Siehe auch