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 durch die 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 ausführen, 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 derselben Ursprung angesehen. Dies bedeutete, dass eine Datei und alle ihre Ressourcen während Tests aus einem lokalen Verzeichnis oder Unterverzeichnis geladen werden konnten, ohne einen CORS-Fehler auszulösen.
Leider hatte dies Sicherheitsimplikationen, wie in diesem Hinweis festgestellt: CVE-2019-11730. Viele Browser, einschließlich Firefox und Chrome, behandeln jetzt alle lokalen Dateien als undurchsichtige Ursprünge (standardmäßig). Infolgedessen führt das Laden einer lokalen Datei mit enthaltenen lokalen Ressourcen nun zu CORS-Fehlern.
Entwickler, die lokale Tests durchführen müssen, sollten jetzt einen lokalen Server einrichten. Da alle Dateien vom selben Schema und derselben Domain (localhost
) bereitgestellt werden, haben sie alle denselben Ursprung und lösen keine Cross-Origin-Fehler aus.
Hinweis: Diese Änderung entspricht der URL-Spezifikation, die das Verhalten von Ursprüngen für Dateien offengelassen, aber empfiehlt, dass Dateianfänge als undurchsichtig behandelt werden, wenn Zweifel bestehen.