CORS 錯誤

跨域資源共享 (CORS) 是一種允許伺服器放寬同源策略的標準。它用於明確允許某些跨域請求,同時拒絕其他請求。例如,如果一個網站提供可嵌入服務,則可能需要放寬某些限制。設定這樣的 CORS 配置不一定容易,並且可能會帶來一些挑戰。在這些頁面中,我們將探討一些常見的 CORS 錯誤訊息以及如何解決它們。

如果 CORS 配置未正確設定,瀏覽器控制檯將顯示類似 "Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at [some site]" 的錯誤,表明請求因違反 CORS 安全規則而被阻止。但這不一定是設定錯誤。請求實際上可能被使用者的 Web 應用程式和遠端外部服務有意地禁止。但是,如果終結點應該可用,則需要進行一些除錯才能成功。

識別 CORS 問題

要了解 CORS 配置的根本問題,您需要找出哪個請求有問題以及原因。這些步驟可能會幫助您做到這一點:

  1. 導航到有問題的網站或 Web 應用程式,然後開啟開發者工具
  2. 現在嘗試重現失敗的事務並檢查控制檯,檢視是否看到 CORS 違規錯誤訊息。它可能看起來像這樣:

Firefox console showing CORS error

錯誤訊息的文字將類似於以下內容:

Cross-Origin Request Blocked: The Same Origin Policy disallows
reading the remote resource at https://some-url-here. (Reason:
additional information here).

注意:出於安全原因,有關 CORS 請求出了什麼具體問題的資訊不適用於 JavaScript 程式碼。程式碼只知道發生了錯誤。確定具體出了什麼問題的唯一方法是檢視瀏覽器控制檯以獲取詳細資訊。

CORS 錯誤訊息

當請求因 CORS 失敗時,Firefox 的控制檯會在其控制檯中顯示訊息。錯誤文字的一部分是“原因”訊息,它提供了對出了什麼問題的額外見解。原因訊息如下所示;單擊訊息以開啟一篇文章,該文章更詳細地解釋了錯誤並提供了可能的解決方案。

另見