web-dev-qa-db-fra.com

XMLHttpRequest ne peut pas se charger.?

Je par chrome->Inspect element->console obtenez cette erreur:

XMLHttpRequest ne peut pas se charger. L'origine n'est pas autorisée par Access-Control-Allow-Origin.

Qu'est-ce qui est résolu?

23
Kate Thompson

Vous ne pouvez pas émettre de demandes via XMLHttpRequest vers d'autres domaines ou sous-domaines. Si vous émettez la demande sur www.foo.com, vous devez également cibler la demande sur www.foo.com et ne pas laisser de côté le www.

Si vous avez vraiment besoin de frapper un autre domaine, vous pouvez utiliser JsonP où le navigateur utilise le <script> balises capacité de charger des scripts d'un autre domaine. Le script chargé exécute ensuite une fonction de rappel pour vous fournir les données. Mais pour les appels réguliers AJAX, vous ne pouvez pas quitter le domaine source du tout.

Voir l'article du wiki sur même politique d'origine

17
Tigraine

une solution de contournement utilise Korz qui achemine toutes les demandes croisées d'origine via un tiers et définit Access-Control-Allow-Origin header à '*' pour que la demande soit traitée.

5
yonatan

Je vous recommande de lire ceci: http://www.fbloggs.com/2010/07/09/how-to-access-cross-domain-data-with-ajax-using-jsonp-jquery-and -php /

C'est très bien expliqué ... le fait est que vous devez retourner votre JSON d'une manière de fonction de rappel

3
beitomartinez