Cette page a été traduite à partir de l'anglais par la communauté. Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.

View in English Always switch to English

En-tête Access-Control-Allow-Credentials

Baseline Widely available

Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis ⁨juillet 2015⁩.

L'en-tête de réponse HTTP Access-Control-Allow-Credentials indique aux navigateurs si le serveur autorise l'inclusion de justificatifs dans les requêtes HTTP inter-origines.

Les justificatifs incluent les cookies, les certificats client Transport Layer Security (TLS), ou les en-têtes d'authentification contenant un nom d'utilisateur·ice et un mot de passe. Par défaut, ces justificatifs ne sont pas envoyés dans les requêtes inter-origines, et le faire peut rendre un site vulnérable aux attaques de Cross-Site Request Forgery (CSRF).

Un client peut demander l'inclusion de justificatifs dans les requêtes inter-sites de plusieurs façons :

Lorsque des justificatifs sont inclus :

  • Pour les requêtes préliminaires : la requête préliminaire n'inclut pas de justificatifs. Si la réponse du serveur à la requête préliminaire définit l'en-tête Access-Control-Allow-Credentials à true, alors la requête réelle inclura les justificatifs ; sinon, le navigateur signale une erreur réseau.
  • Pour les requêtes non préliminaires : la requête inclura les justificatifs, et si la réponse du serveur ne définit pas l'en-tête Access-Control-Allow-Credentials à true, le navigateur signale une erreur réseau.
Type d'en-tête En-tête de réponse

Syntaxe

http
Access-Control-Allow-Credentials: true

Directives

true

Le serveur autorise l'inclusion de justificatifs dans les requêtes HTTP inter-origines. C'est la seule valeur valide pour cet en-tête et elle est sensible à la casse. Si vous n'avez pas besoin de justificatifs, omettez complètement cet en-tête au lieu de définir sa valeur à false.

Exemples

Autoriser les justificatifs :

http
Access-Control-Allow-Credentials: true

Utilisation de fetch() avec justificatifs :

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

Utilisation de XMLHttpRequest avec justificatifs :

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

Spécifications

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

Compatibilité des navigateurs

Voir aussi