Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

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 beinhalten, wie z. B. 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 von gleicher Herkunft betrachtet. Dies bedeutete, dass eine Datei und alle ihre Ressourcen während des Testens aus einem lokalen Verzeichnis oder Unterverzeichnis geladen werden konnten, ohne einen CORS-Fehler auszulösen.

Leider hatte dies Sicherheitsimplikationen, wie in diesem Hinweis vermerkt: CVE-2019-11730. Viele Browser, darunter Firefox und Chrome, behandeln jetzt alle lokalen Dateien als undurchsichtig herkunftsberichtig (standardmäßig). Infolgedessen führt das Laden einer lokalen Datei mit enthaltenen lokalen Ressourcen jetzt zu CORS-Fehlern.

Entwickler, die lokale Tests durchführen müssen, sollten jetzt einen lokalen Server einrichten. Da alle Dateien aus demselben Schema und derselben Domain (localhost) bereitgestellt werden, haben sie alle die gleiche Herkunft und lösen keine Cross-Origin-Fehler aus.

Hinweis: Diese Änderung steht im Einklang mit der URL-Spezifikation, die das Verhalten der Herkunft von Dateien der Implementierung überlässt, aber empfiehlt, dass Dateiorigins als undurchsichtig behandelt werden, wenn Zweifel bestehen.

Siehe auch