Reason: CORS request not HTTP
Grund
Reason: CORS request not HTTP
Was ist schiefgelaufen?
CORS-Anfragen dürfen nur das URL-Schema HTTP oder HTTPS 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 mit CORS durchführen, wie zum Beispiel bei fetch()
, XMLHttpRequest
, Web Fonts (@font-face
) und WebGL-Texturen und XSL-Stylesheets.
Laden einer lokalen Datei
Lokale Dateien aus dem gleichen Verzeichnis und Unterverzeichnissen wurden historisch als von derselben Herkunft stammend behandelt. 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 angemerkt: CVE-2019-11730. Viele Browser, einschließlich Firefox und Chrome, behandeln nun standardmäßig alle lokalen Dateien als undurchsichtige Ursprünge. Infolgedessen führt das Laden einer lokalen Datei mit eingeschlossenen lokalen Ressourcen jetzt zu CORS-Fehlern.
Entwickler, die lokale Tests durchführen müssen, sollten jetzt einen lokalen Server einrichten. Da alle Dateien vom selben Schema und von derselben Domain (localhost
) bereitgestellt werden, haben alle dieselbe Herkunft 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 Dateiquellen als undurchsichtig behandelt werden, wenn Zweifel bestehen.