原因: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 規範,該規範將檔案來源的行為留給實現,但建議在有疑問的情況下將檔案來源視為不透明。

另請參閱