Maison > interface Web > js tutoriel > Pourquoi ma requête AJAX à partir des URL « fichier:// » obtient-elle une erreur « L'origine nulle n'est pas autorisée par Access-Control-Allow-Origin » ?

Pourquoi ma requête AJAX à partir des URL « fichier:// » obtient-elle une erreur « L'origine nulle n'est pas autorisée par Access-Control-Allow-Origin » ?

Linda Hamilton
Libérer: 2024-12-23 05:30:25
original
588 Les gens l'ont consulté

Why Does My AJAX Request from `file://` URLs Get an

« L'origine nulle n'est pas autorisée par Access-Control-Allow-Origin » Erreur pour les requêtes provenant des URL de fichier://

Problème : Les développeurs rencontrent un problème lorsqu'ils effectuent des requêtes via le support AJAX de jQuery à partir d'une URL file:// vers Panoramio. L'erreur « Origin null n'est pas autorisé par Access-Control-Allow-Origin » apparaît dans la console.

Analyse des causes profondes :

  • Type de requête incorrect : La requête GET doit utiliser un dataType de "jsonp" ou inclure "callback=?" dans l'URL pour activer JSONP, ce qui est nécessaire pour les requêtes inter-domaines.
  • Restrictions CORS pour les URL file:// : Les en-têtes de partage de ressources d'origine croisée (CORS) ne peuvent pas autoriser les requêtes de file:// URL avec un en-tête Origin nul via le retour d'écho mécanisme.

Solution :

Pour résoudre le problème, les étapes suivantes sont nécessaires :

  1. Utiliser JSONP Requête : Utilisez $.getJSON ou définissez le dataType sur "jsonp" pour que $.get déclenche JSONP, qui modifie le tapez la requête sur "jsonp" si "callback=?" est présent dans l'URL.
  2. Évitez les URL file:// : Assurez-vous que les tests sont effectués via les URL http://, car les URL file:// ont une prise en charge CORS limitée.

Instructions de dépannage :

  1. Vérifiez JSONP Utilisation : Assurez-vous que $.get a dataType défini sur jsonp ou que $.getJSON est utilisé avec "callback=?" dans l'URL.
  2. CORS pour les requêtes inter-domaines : Testez via http:// pour éviter les restrictions CORS pour les URL de fichier://. Confirmez que le navigateur prend en charge CORS, car Opera et Internet Explorer ont retardé la mise en œuvre.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal