Heim >Web-Frontend >js-Tutorial >Warum führt meine AJAX-Anfrage von „file://'-URLs zu einem „Origin Null is Not Allowed'-Fehler?

Warum führt meine AJAX-Anfrage von „file://'-URLs zu einem „Origin Null is Not Allowed'-Fehler?

Barbara Streisand
Barbara StreisandOriginal
2025-01-06 02:35:41551Durchsuche

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

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

  • Stellen Sie sicher, dass Sie JSONP korrekt verwenden, indem Sie dataType auf „ jsonp“ oder einschließlich „callback=?“ in der URL.
  • Stellen Sie sicher, dass Sie von einer HTTP-URL aus testen, da file://-Anfragen begrenzte CORS-Unterstützung haben.
  • Überprüfen Sie, ob Ihr Browser CORS unterstützt, indem Sie bei Bedarf experimentelle Funktionen aktivieren .

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn