Raison : l’en-tête CORS « Access-Control-Allow-Origin » est manquant.

Cette traduction est en cours.

Symptomes

 Raison : l’en-tête CORS « Access-Control-Allow-Origin » est manquant. 

Quel est le problème ?

La réponse à la requête CORS ne contient pas l'en-tête requis Access-Control-Allow-Origin, dont la fonction est de déterminer si le domaine à l'origine de la requête est autorisé à accéder à cette ressource.

Si vous avez le contrôle du serveur, vous pouvez ajouter l'origine de la requête à la liste des domaines autorisés à accéder aux ressources du serveur en l'ajoutant aux valeurs de l'en-tête Access-Control-Allow-Origin.

Par exemple, pour autorisez le site https://amazing.site à accéder aux resources avec CORS, le header doit être comme suit :

Access-Control-Allow-Origin: https://amazing.site

Vous pouvez aussi configurer le serveur pour autoriser tous les domaines à accéder aux ressources avec le caractère générique "*". Ceci ne devrait être utilisé uniquement pour des APIs publiques. Les APIs privées ne devraient jamais utiliser "*", et devraient à la place utiliser un domaine ou un ensemble de domaines. De plus, l'astérisque ne fonctionne que pour les requêtes avec l'attribut crossorigin ayant comme valeur "anonymous".

Access-Control-Allow-Origin: *

Attention: Autoriser n'importe quel site à accéder à une API privée est une mauvaise idée pour des raisons qui devraient être évidentes.

Par exemple, avec Apache, ajouter (dans la section <Directory>, <Location>, <Files>, ou <VirtualHost> appropriée) la ligne ci-dessous au fichier de configuration. Le fichier de configuration est en général un .conf (httpd.conf et apache.conf sont les noms les plus communs) ou un fichier nommé .htaccess.

Header set Access-Control-Allow-Origin 'origin-list'

Avec Nginx, la commande pour créer l'en-tête est :

add_header 'Access-Control-Allow-Origin' 'origin-list'

 

Voir aussi

Étiquettes et contributeurs liés au document

Contributeurs à cette page : TheWildHealer
Dernière mise à jour par : TheWildHealer,