Heim >Web-Frontend >js-Tutorial >Warum führt meine AJAX-Anfrage von „file://'-URLs zu einem „Origin Null is Not Allowed'-Fehler?
Fehler „Origin Null is Not Allowed by Access-Control-Allow-Origin“ in File:// URL-Anfragen
Bei der Ausführung von AJAX Bei Anfragen von einer file://-URL an eine andere Domäne kann der Fehler „XMLHttpRequest kann nicht geladen werden“ auftreten. Dieses Problem wird durch die von Browsern durchgesetzte Cross-Origin-Sicherheitsrichtlinie verursacht.
Grundlegendes zu Cross-Origin-Anfragen
Browser schränken Cross-Origin-Anfragen ein, um Benutzerdaten zu schützen und zu verhindern bösartige Skripte daran gehindert werden, auf vertrauliche Informationen von verschiedenen Websites zuzugreifen. Um ursprungsübergreifende Anfragen zu ermöglichen, muss der Server einen Access-Control-Allow-Origin-Header zurückgeben, der die zulässigen Ursprünge angibt.
Problem mit File://-URL-Anfragen
Wenn Sie über eine Datei://-URL auf eine Seite zugreifen, stellt der Browser den Ursprung als „null“ dar, was kein zulässiger Ursprung ist. Dies liegt daran, dass URL-Anfragen vom Typ „file://“ nicht als Teil des Webs betrachtet werden und über begrenzte ursprungsübergreifende Funktionen verfügen.
Lösung Nr. 1: Verwenden Sie JSONP
JSONP (JSON with Padding) ist eine Technik, die ursprungsübergreifende Anfragen ermöglicht, ohne die Same-Origin-Richtlinie zu verletzen. Dabei wird der URL ein Callback-Parameter hinzugefügt, der dann mit den JSON-Daten als Argument aufgerufen wird.
Mit jQuery können Sie $.getJSON() anstelle von $.get() verwenden und „?“ anhängen. Rückruf=?" auf die URL, um den JSONP-Modus auszulösen.
Lösung Nr. 2: Über HTTP bereitstellen
Für vollständige Cross-Origin-Unterstützung hosten Sie Ihre Seite über HTTP. Dadurch kann der Browser den richtigen Origin-Header festlegen und CORS aktivieren.
Tipps zur Fehlerbehebung
Das obige ist der detaillierte Inhalt vonWarum führt meine AJAX-Anfrage von „file://'-URLs zu einem „Origin Null is Not Allowed'-Fehler?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!