Reason: CORS request not HTTP

Grund

Reason: CORS request not HTTP

Was ist schiefgelaufen?

CORS-Anfragen dürfen nur das HTTP- oder HTTPS-URL-Schema verwenden, aber die von der Anfrage angegebene URL ist von einem anderen Typ. Dies tritt häufig auf, wenn die URL eine lokale Datei mit dem file:///-Schema angibt.

Um dieses Problem zu beheben, stellen Sie sicher, dass Sie HTTPS-URLs verwenden, wenn Sie Anfragen durchführen, die CORS betreffen, wie zum Beispiel fetch(), XMLHttpRequest, Web Fonts (@font-face), und WebGL-Texturen sowie XSL-Stylesheets.

Laden einer lokalen Datei

Lokale Dateien aus demselben Verzeichnis und Unterverzeichnissen wurden historisch als vom gleichen Ursprung stammend betrachtet. Dies bedeutete, dass eine Datei und alle ihre Ressourcen während der Tests aus einem lokalen Verzeichnis oder Unterverzeichnis geladen werden konnten, ohne einen CORS-Fehler auszulösen.

Leider hatte dies sicherheitstechnische Auswirkungen, wie in dieser Beratung vermerkt: CVE-2019-11730. Viele Browser, darunter Firefox und Chrome, behandeln jetzt alle lokalen Dateien standardmäßig als opake Ursprünge. Daher führt das Laden einer lokalen Datei mit eingeschlossenen lokalen Ressourcen jetzt zu CORS-Fehlern.

Entwickler, die lokale Tests durchführen müssen, sollten nun einen lokalen Server einrichten. Da alle Dateien vom gleichen Schema und Domain (localhost) bedient werden, haben sie denselben Ursprung und lösen keine Cross-Origin-Fehler aus.

Hinweis: Diese Änderung steht im Einklang mit der URL-Spezifikation, die das Ursprungsverhalten für Dateien der Implementierung überlässt, aber empfiehlt, dass Dateiursprünge als opak behandelt werden, wenn Zweifel bestehen.

Siehe auch