web-dev-qa-db-fra.com

Erreur sous Chrome uniquement: XMLHttpRequest ne peut pas charger l'URL du fichier. Aucun en-tête 'Access-Control-Allow-Origin' n'est présent sur la ressource demandée.

Je suis un exemple de livre d'où le code est très simple.

C'est le code:

jQuery.get("ajax_search_results.php",
           { s:search_query },
           write_results_to_page, "html");

Et le code est ajax_search_results.php a:

<div id="ajax_search_results">
 <ul>
 <li><a href="#">First result</a></li>
 <li><a href="#">Second result</a></li>
 <li><a href="#">Third result</a></li>
 <li><a href="#">More...</a></li>
 </ul>
</div>

Cela fonctionne comme prévu dans Firefox. Mais dans Chrome, le message d'erreur suivant s'affiche dans la console JS:

XMLHttpRequest cannot load 
file:///C:/xampp/xampp/htdocs/snk/ajax_search_results.php?s=keyword. 
No 'Access-Control-Allow-Origin' header is present on the requested resource.
Origin 'null' is therefore not allowed access.

Pouvez-vous s'il vous plaît aider à identifier le problème?

16

Si votre problème est le suivant lorsque vous utilisez Google Chrome:

[XMLHttpRequest ne peut pas charger le fichier. Reçu une réponse invalide. L'accès à l'origine 'null' n'est donc pas autorisé.]

Créez ensuite un fichier de commandes en procédant comme suit:

Ouvrez notepad dans le bureau.

  1. Copiez et collez simplement les éléments suivants dans le fichier bloc-notes actuellement ouvert:

démarrer "chrome" "C:\Programmes (x86)\Google\Chrome\Application\chrome.exe" --allow-file-access-from-files sortie

  1. Remarque: Dans la ligne précédente, Remplacez l'adresse absolue complète par votre emplacement d'installation de chrome . [Pour le trouver ... Cliquez avec le bouton droit sur votre raccourci de chrome.exe ou sur l'icône et cliquez sur Propriétés et copier-coller le lien target] [Rappelez-vous: start pour les fichiers d'une ligne, & exit dans une autre ligne en appuyant sur entrée]
  2. Enregistrez le fichier sous NomFichier.bat [Très important: .bat]
  3. Si vous souhaitez modifier le fichier ultérieurement, cliquez avec le bouton droit de la souris sur le fichier .bat et cliquez sur Modifier. Après modification, enregistrez le fichier.

Ça va faire quoi? Il ouvrira Chrome.exe avec un accès au fichier . Maintenant, où que vous soyez dans votre ordinateur, parcourez vos fichiers HTML avec Google Chrome . J'espère que cela résoudra le problème XMLHttpRequest.

Gardez à l'esprit: utilisez simplement le fichier de raccourci clavier pour ouvrir Chrome lorsque vous en avez besoin ..... Dites-moi si cela résout votre problème. J'ai eu un problème similaire et je l'ai résolu de cette façon. Merci.

5
Sakib

ajoutez ceci en haut du fichier,

header('content-type: application/json; charset=utf-8');
header("access-control-allow-Origin: *");
4

Cela est censé être dû au fait que vous essayez de créer inter-domaine request, ou quelque chose qui est expliqué comme suit: . Vous pouvez essayer d'ajouter header('Access-Control-Allow-Origin: *'); au fichier demandé.

De plus, un tel problème survient parfois lors de l'implémentation des événements envoyés par le serveur en cas d'utilisation de event-source ou XHR polling dans IE 8-10 (ce qui m'a dérouté pour la première fois).

1
Damaged Organic