Access-Control-Allow-Credentials

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-Credentials-Antwort-Header teilt Browsern mit, ob der Server zulässt, dass Anmeldedaten in Cross-Origin-HTTP-Anfragen enthalten sind.

Zu den Anmeldedaten gehören Cookies, Transport Layer Security (TLS)-Client-Zertifikate oder Authentifizierungs-Header, die einen Benutzernamen und ein Passwort enthalten. Standardmäßig werden diese Anmeldedaten nicht in Cross-Origin-Anfragen gesendet, da dies eine Website für Cross-Site Request Forgery (CSRF)-Angriffe anfällig machen kann.

Ein Client kann auf verschiedene Weise um die Einbeziehung von Anmeldedaten in Cross-Site-Anfragen bitten:

Wenn Anmeldedaten enthalten sind:

  • Für vorgeprüfte Anfragen: Die Vorab-Anfrage enthält keine Anmeldedaten. Wenn die Antwort des Servers auf die Vorab-Anfrage den Access-Control-Allow-Credentials-Header auf true setzt, dann wird die eigentliche Anfrage Anmeldedaten enthalten; andernfalls meldet der Browser einen Netzwerkfehler.
  • Für nicht vorgeprüfte Anfragen: Die Anfrage enthält Anmeldedaten, und wenn die Antwort des Servers den Access-Control-Allow-Credentials-Header nicht auf true setzt, meldet der Browser einen Netzwerkfehler.
Header-Typ Antwort-Header
Verbotener Header-Name Nein

Syntax

http
Access-Control-Allow-Credentials: true

Direktiven

true

Der Server erlaubt es, dass Anmeldedaten in Cross-Origin-HTTP-Anfragen enthalten sind. Dies ist der einzige gültige Wert für diesen Header und er ist groß- und kleinschreibungsempfindlich. Wenn Sie keine Anmeldedaten benötigen, lassen Sie diesen Header ganz weg, anstatt seinen Wert auf false zu setzen.

Beispiele

Anmeldedaten zulassen:

http
Access-Control-Allow-Credentials: true

Verwendung von fetch() mit Anmeldedaten:

js
fetch(url, {
  credentials: "include",
});

Verwendung von XMLHttpRequest mit Anmeldedaten:

js
const xhr = new XMLHttpRequest();
xhr.open("GET", "http://example.com/", true);
xhr.withCredentials = true;
xhr.send(null);

Spezifikationen

Specification
Fetch
# http-access-control-allow-credentials

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-Credentials

Legend

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

Full support
Full support

Siehe auch