Maison > interface Web > js tutoriel > Pourquoi ma requête AJAX provenant des URL « fichier:// » échoue-t-elle avec « Origin Null Not Allowed by Access-Control-Allow-Origin » ?

Pourquoi ma requête AJAX provenant des URL « fichier:// » échoue-t-elle avec « Origin Null Not Allowed by Access-Control-Allow-Origin » ?

Mary-Kate Olsen
Libérer: 2024-12-19 12:51:10
original
124 Les gens l'ont consulté

Why Does My AJAX Request from `file://` URLs Fail with

Problème "Origin Null Not Allowed by Access-Control-Allow-Origin" pour les requêtes provenant d'URL de fichier://

Introduction :

Lors de l'exécution d'une requête AJAX vers un domaine différent à partir d'une URL file://, les développeurs peuvent rencontrer une erreur liée à "Origin null n'est pas autorisé par Access-Control-Allow-Origin." Ce problème est dû à une mesure de sécurité connue sous le nom de partage de ressources cross-origine (CORS) qui restreint les requêtes inter-domaines.

Le problème :

Requêtes AJAX effectuées à partir de Les URL file:// ont une origine nulle, ce qui n'est pas autorisé par CORS. Le navigateur bloque ces demandes pour empêcher tout accès non autorisé aux ressources sur différents domaines.

Solution :

Pour résoudre ce problème, deux méthodes principales peuvent être utilisées :

  1. Utiliser une requête JSONP :

    JSONP (JSON with Padding) est une technique qui permet d'effectuer des requêtes inter-domaines en encapsulant la réponse dans une fonction de rappel. En spécifiant un nom de fonction de rappel dans l'URL, le navigateur peut interpréter la réponse comme un appel de fonction plutôt que comme une requête AJAX. Pour utiliser JSONP :

    • Définissez le dataType sur "jsonp" dans la requête jQuery $.get.
    • Incluez "callback=?"` dans l'URL de la requête, ce qui amène jQuery à utiliser JSONP.

    Exemple :

    $.get(url, { callback: 'myCallback' }, function(data) {
      // Handle the response data
    });
    Copier après la connexion
  2. Test à l'aide d'une URL HTTP :

    Les restrictions CORS ne sont pas appliqué aux requêtes effectuées à partir d’URL http://. Par conséquent, tester la requête à partir d’une URL http:// peut contourner le problème d’origine nulle. Cette approche est utile pour déboguer et vérifier la configuration CORS côté serveur.

Conseils de dépannage :

  • Assurez-vous que le serveur- Le script latéral est configuré pour prendre en charge CORS en envoyant les en-têtes appropriés, tels que Access-Control-Allow-Origin.
  • Vérifiez compatibilité du navigateur avec CORS. Actuellement, Opera et Internet Explorer ont une prise en charge limitée de CORS.
  • Évitez d'effectuer des requêtes inter-domaines à partir d'URL file:// lorsque cela est possible.

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