原因:CORS 請求不是 HTTP

原因

Reason: CORS request not HTTP

哪裡出錯了?

CORS 請求只能使用 HTTP 或 HTTPS URL 方案,但請求指定的 URL 是另一種型別。如果 URL 指定了本地檔案(使用 file:/// 方案),則經常會發生這種情況。

要解決此問題,請確保在發出涉及 CORS 的請求時使用 HTTPS URL,例如 fetch()XMLHttpRequest、Web 字型 (@font-face) 和 WebGL 紋理以及 XSL 樣式表。

載入本地檔案

過去,來自同一目錄和子目錄的本地檔案被視為來自同源。這意味著在測試期間,檔案及其所有資源都可以從本地目錄或子目錄載入,而不會觸發 CORS 錯誤。

不幸的是,這存在安全隱患,如本公告所述:CVE-2019-11730。包括 Firefox 和 Chrome 在內的許多瀏覽器現在都將所有本地檔案(預設情況下)視為具有不透明源。因此,載入包含本地資源的本地檔案現在將導致 CORS 錯誤。

需要執行本地測試的開發人員現在應該設定本地伺服器。由於所有檔案都來自相同的方案和域 (localhost),因此它們都具有相同的源,並且不會觸發跨源錯誤。

注意:此更改與 URL 規範一致,該規範將檔案的源行為留給實現,但建議在有疑問時將檔案源視為不透明。

另見