web-dev-qa-db-fra.com

L'en-tête 'Access-Control-Allow-Origin' a une valeur différente de l'origine fournie.

J'essaie de me connecter avec ajax à une API et j'obtiens cette erreur:

XMLHttpRequest ne peut pas être chargé. L'en-tête 'Access-Control-Allow-Origin' A une valeur différente de l'origine fournie. Origine ' http: // localhost ' n'est donc pas autorisé.

J'ai tout lu sur cette erreur, partout sur Internet, et j'ai essayé toutes les solutions que je pouvais trouver en ligne. J'ai modifié les fichiers de configuration .htaccess et Apache httpd conformément aux instructions CORS suivantes: http://enable-cors.org/server_Apache.html

Access-Control-Allow-Origin: *

Rien ne semble fonctionner. J'apprécierais vraiment si vous pouviez m'aider avec ça. Je vous remercie!

5
Matt E.

Vous devez définir en-tête Access-Control-Allow-Origin sur * ou la valeur spécifiéehttp: // localhost

Vous pouvez le faire par:

1- Votre code

2- fichier .htaccess

3- Configuration du serveur (redémarrage du serveur Web requis)

Voici le lien qui montre comment le faire sur Apache 

http://access-control-allow-Origin-guide.com/enable-cors-on-Apache-linux/

2
Dzung Cao

Vos demandes utilisent-elles des cookies ou une autorisation par hasard? 

Vérifiez votre appel ajax côté client si vous le configurez pour le faire "avec les informations d'identification"

.withCredentials = true;

Si oui, le caractère générique (*) ne fonctionnera pas et vous devrez fournir l'hôte exact comme valeur pour Access-Control-Allow-Origin.

Reportez-vous à cette réponse de débordement de pile ou Documentation de Mozilla sur CORS

0
fmello

En ce qui concerne la sécurité du navigateur, à moins que l'API n'autorise les origines inter-navigateurs dans l'en-tête des réponses, il n'y a aucune solution.

Les navigateurs le bloquent, il existe un plugin pour autoriser le chrome, mais il n’est pas réaliste de compter sur le plugin du navigateur pour autoriser les requêtes des utilisateurs finaux,

Essayez de contacter le fournisseur d'API et voyez s'il peut envisager de mettre à jour l'en-tête dans la réponse.

Il s’agit d’un problème CORS: https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS

0
jeremykenedy

j'utilise le fichier htaccess pour charger des données JSON dans différents hébergements, et ses travaux, mais 

il doit mettre à l'intérieur de la racine HTML publique de notre hébergement Web par exemple 

télécharger le fichier .htaccess dans -> ( https://freehostingsomewhere.com/ )

puis à l'intérieur .htaccess 

<FilesMatch "\.(ttf|otf|eot|woff|jpg|png|jpeg|gif|js|json|html|css)$">
  <IfModule mod_headers.c>
    Header set Access-Control-Allow-Origin "http://localhost"
  </IfModule>
</FilesMatch>

ici j'utilise http: // localhost pour le développement et ça marche, 

peut-être que si j'ai un autre hébergeur, changez-le en url, je l'essayerai plus tard ( ça peut, je l'essaie déjà ): p 

ceci est juste pour une explication plus claire

acclamations: p 

0
kikihuang99