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 eigentlichen Anfrage verwendet werden können. Dieser Header ist erforderlich, wenn die Preflight-Anfrage Access-Control-Request-Headers enthält.

Hinweis: Die CORS-sicheren Anforderungsheader sind immer erlaubt und werden normalerweise nicht in Access-Control-Allow-Headers aufgelistet, es sei denn, es besteht die Notwendigkeit, die zusätzlichen Sicherheitslisteneinschränkungen zu umgehen.

Header-Typ Antwort-Header
Verbotener Anforderungsheader 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 Anforderungsheaders. Der Header kann eine beliebige Anzahl von Headers enthalten, die durch Kommas getrennt sind.

* (Wildcard)

Beliebiger Header. Der Wert * zählt nur als spezieller Wildcard-Wert für Anfragen ohne Berechtigungsnachweise (Anfragen ohne HTTP-Cookies oder HTTP-Authentifizierungsinformationen). Bei Anfragen mit Berechtigungsnachweisen wird es als der literal Header-Name * ohne spezielle Semantik behandelt. Der Authorization-Header kann nicht wildcarded werden und muss immer explizit aufgelistet werden.

Beispiele

Implementierung eines benutzerdefinierten Headers

Unten ist ein Beispiel für einen Access-Control-Allow-Headers-Header. Es zeigt an, dass ein benutzerdefinierter Header namens X-Custom-Header von CORS-Anfragen an den Server unterstützt wird, zusätzlich zu den CORS-sicheren Anforderungsheadern.

http
Access-Control-Allow-Headers: X-Custom-Header

Unterstützung mehrerer Header

Dieses Beispiel zeigt Access-Control-Allow-Headers wenn es die Unterstützung für mehrere Header angibt.

http
Access-Control-Allow-Headers: X-Custom-Header, Upgrade-Insecure-Requests

Umgehung zusätzlicher Einschränkungen bei CORS-sicheren Headers

Obwohl CORS-sichere Anforderungsheader immer erlaubt sind und normalerweise nicht in Access-Control-Allow-Headers aufgelistet werden müssen, führt das Auflisten dennoch zur Umgehung der zusätzlichen Einschränkungen, die gelten.

http
Access-Control-Allow-Headers: Accept

Umgang mit Preflight-Anfragen

Betrachten wir ein Beispiel für eine Preflight-Anfrage, die Access-Control-Allow-Headers einbezieht.

Anfrage

Zuerst ist die Preflight-Anfrage eine OPTIONS-Anfrage, die eine Kombination der drei Preflight-Anfrage-Header enthält: Access-Control-Request-Method, Access-Control-Request-Headers und Origin.

Die folgende Preflight-Anfrage teilt dem Server mit, dass wir eine CORS GET-Anfrage mit den in Access-Control-Request-Headers aufgelisteten 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 von der Preflight-Anfrage angezeigte CORS-Anfrage autorisiert ist, antwortet der Server auf die Preflight-Anfrage mit einer Nachricht, die den erlaubten Ursprung, die Methoden und die Header anzeigt. 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