it-swarm.com.de

Nur Fehler in Chrome: XMLHttpRequest kann Datei-URL nicht laden. In der angeforderten Ressource ist kein Header "Access-Control-Allow-Origin" vorhanden

Ich folge einem Buchbeispiel, daher ist der Code sehr einfach.

Dies ist der Code:

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

Und der Code ist ajax_search_results.php hat:

<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>

Dies funktioniert wie erwartet im Firefox. In Chrome kann ich jedoch die folgende Fehlermeldung in der JS-Konsole sehen:

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.

Können Sie bitte helfen, das Problem zu identifizieren?

16

Wenn bei der Verwendung von Google Chrome das folgende Problem auftritt:

[XMLHttpRequest kann die Datei nicht laden. Eine ungültige Antwort erhalten. Ursprungswert 'null' ist daher nicht zulässig.]

Erstellen Sie anschließend eine Batchdatei, indem Sie die folgenden Schritte ausführen:

Öffnen Sie Notizblock in Desktop.

  1. Kopieren Sie einfach die folgenden Elemente in Ihre aktuell geöffnete Notepad-Datei:

starten Sie "chrome" "C:\Programme (x86)\Google\Chrome\Application\chrome.exe" --allow-file-access-from-files Ausfahrt

  1. Hinweis: Ersetzen Sie in der vorherigen Zeile die vollständige absolute Adresse durch Ihren Installationsort für die Chrome-Installation [Zum Suchen ... Klicken Sie mit der rechten Maustaste auf Ihr Abkürzung für chrome.exe-Verknüpfung oder -Symbolund klicken Sie auf Eigenschaften und kopieren und fügen Sie Zielverknüpfung] [Erinnern: Start von Dateien in einer Zeile, & in einer anderen Zeile beendendurch Drücken von ein eingeben]
  2. Speichern Sie die Datei als Dateiname.bat [Sehr wichtig: .bat]
  3. Wenn Sie die Datei später ändern möchten, klicken Sie mit der rechten Maustaste auf die .bat-Datei und klicken Sie auf Bearbeiten. Speichern Sie die Datei nach dem Ändern.

Das wird was tun? Chrome.exe wird mit Dateizugriff geöffnet Durchsuchen Sie Ihre HTML-Dateien jetzt von jedem beliebigen Ort auf Ihrem Computer mit Google Chrome. __ Ich hoffe, das XMLHttpRequest-Problem wird dadurch gelöst.

Denken Sie daran: Verwenden Sie einfach die Shortcut-Bat-Datei, um Chrome zu öffnen, wenn Sie es benötigen Sagen Sie mir, wenn das Problem dadurch gelöst wird. Ich hatte ein ähnliches Problem und habe es auf diese Weise gelöst. Vielen Dank.

5
Sakib

fügen Sie dies am Anfang der Datei hinzu,

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

Dies ist vermutlich darauf zurückzuführen, dass Sie versuchen, domänenübergreifend request zu machen, oder etwas, das klarer formuliert wird ... __ Sie könnten versuchen, header('Access-Control-Allow-Origin: *'); zur angeforderten Datei hinzuzufügen.

Dieses Problem tritt manchmal auch bei der Implementierung von Ereignissen auf, die vom Server gesendet wurden, wenn event-source oder XHR polling in IE 8-10 verwendet wird (was mich beim ersten Mal verwirrt hat).

1
Damaged Organic