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 erlaubt, dass Anmeldedaten in Cross-Origin-HTTP-Anfragen enthalten sind.

Anmeldedaten umfassen Cookies, Transport Layer Security (TLS)-Client-Zertifikate oder Authentifizierungs-Header mit einem Benutzernamen und Passwort. Standardmäßig werden diese Anmeldedaten nicht in Cross-Origin-Anfragen gesendet, und dies zu tun, kann eine Website anfällig für Cross-Site Request Forgery (CSRF)-Angriffe machen.

Ein Client kann auf verschiedene Weise darum bitten, dass Anmeldedaten in Cross-Site-Anfragen enthalten sind:

Wenn Anmeldedaten enthalten sind:

  • Für voreingeforderte Anfragen: Die Voreingabe-Anfrage enthält keine Anmeldedaten. Wenn die Antwort des Servers auf die Voreingabe-Anfrage den Access-Control-Allow-Credentials-Header auf true setzt, dann enthält die eigentliche Anfrage Anmeldedaten; andernfalls meldet der Browser einen Netzwerkfehler.
  • Für nicht voreingeforderte 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 Anfrage-Header Nein

Syntax

http
Access-Control-Allow-Credentials: true

Direktiven

true

Der Server erlaubt, dass Anmeldedaten in Cross-Origin-HTTP-Anfragen enthalten sind. Dies ist der einzige gültige Wert für diesen Header und dieser ist case-sensitive. 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

BCD tables only load in the browser

Siehe auch