En-tête Access-Control-Allow-Origin
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-Origin indique si la réponse peut être partagée avec le code demandeur provenant de l'origine donnée.
| Type d'en-tête | En-tête de réponse |
|---|
Syntaxe
Access-Control-Allow-Origin: *
Access-Control-Allow-Origin: <origin>
Access-Control-Allow-Origin: null
Directives
*(joker)-
Le code demandeur de n'importe quelle origine est autorisé à accéder à la ressource. Pour les requêtes sans justificatifs, la valeur littérale
*peut être définie comme joker. Tenter d'utiliser le joker avec des justificatifs entraîne une erreur. <origin>-
Définit une seule origine. Si le serveur prend en charge des clients de plusieurs origines, il doit retourner l'origine pour le client spécifique qui fait la demande.
null-
Définit l'origine « null ».
Note : La valeur
nullne doit pas être utilisée. Il peut sembler sûr de retournerAccess-Control-Allow-Origin: "null"; cependant, l'origine des ressources qui utilisent un schéma non hiérarchique (commedata:oufile:) et des documents isolés est sérialisée ennull. De nombreux navigateurs accorderont à ces documents l'accès à une réponse avec un en-têteAccess-Control-Allow-Origin: null, et n'importe quelle origine peut créer un document hostile avec une originenull. Par conséquent, la valeurnullpour l'en-têteAccess-Control-Allow-Origindoit être évitée.
Exemples
Pour permettre à n'importe quelle ressource d'accéder à vos ressources, vous pouvez indiquer :
Access-Control-Allow-Origin: *
Pour permettre https://developer.mozilla.org d'accéder à vos ressources, vous pouvez indiquer :
Access-Control-Allow-Origin: https://developer.mozilla.org
Limiter les valeurs possibles d'Access-Control-Allow-Origin à un ensemble d'origines autorisées nécessite du code côté serveur pour vérifier la valeur de l'en-tête de requête Origin, la comparer à une liste d'origines autorisées, puis, si la valeur de Origin est dans la liste, définir la valeur d'Access-Control-Allow-Origin sur la même valeur que celle de Origin.
CORS et le cache
Si le serveur envoie une réponse avec une valeur d'Access-Control-Allow-Origin contenant une origine explicite (plutôt que le joker *), la réponse doit également inclure un en-tête de réponse Vary avec la valeur Origin — pour indiquer aux navigateurs que les réponses du serveur peuvent différer selon la valeur de l'en-tête de requête Origin.
Access-Control-Allow-Origin: https://developer.mozilla.org
Vary: Origin
Spécifications
| Specification |
|---|
| Fetch> # http-access-control-allow-origin> |
Compatibilité des navigateurs
Voir aussi
- L'en-tête HTTP
Origin - L'en-tête HTTP
Vary - Partage de ressources entre origines (CORS)
- L'en-tête HTTP
Cross-Origin-Resource-Policy