Maison >interface Web >js tutoriel >Pourquoi ma requête AJAX locale renvoie-t-elle l'erreur « Les requêtes multi-origines ne sont prises en charge que pour HTTP » ?
Erreur d'origine croisée XMLHttpRequest
Lors de la tentative d'exécution de requêtes AJAX à partir d'un serveur Web local, les développeurs peuvent rencontrer l'erreur « Demandes d'origine croisée ne sont pris en charge que pour HTTP." Cette erreur se produit bien que la demande ne soit pas inter-domaines.
Cause
Cette erreur est déclenchée par la politique de sécurité du navigateur, qui restreint la communication d'origine croisée entre différents domaines et protocoles pour des raisons de sécurité. Cependant, dans ce cas, la requête est effectuée depuis un serveur local vers une ressource locale, ce qui la rend essentiellement de même origine.
Solution
Pour résoudre ce problème , les utilisateurs de Chrome peuvent démarrer le navigateur avec le commutateur suivant :
--allow-file-access-from-files
MacOS
<code class="pre">open -a 'Google Chrome' --args -allow-file-access-from-files</code>
Linux
<code class="pre">google-chrome --allow-file-access-from-files</code>
Windows
Ajoutez le switch à la fin du chemin "cible" dans les propriétés du raccourci Chrome :
<code class="pre">C:\ ... \Application\chrome.exe --allow-file-access-from-files</code>
En activant ce switch, Chrome permet aux requêtes AJAX d'accéder aux fichiers et ressources locaux, résolvant ainsi l'erreur "Les requêtes d'origine croisée ne sont prises en charge que pour HTTP, mais elles ne sont pas inter-domaines."
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!