CORS 防止的錯誤:「Access-Control-Allow-Origin 不允許來源」
簡介:
跨來源資源共享(CORS) 期間,當用戶端腳本嘗試從與其運行來源不同的來源存取資源。
原因:
此錯誤有幾個潛在原因:
- 同源策略:未經伺服器明確許可, JavaScript 被限制存取其網域之外的資源。此策略可防止惡意腳本竊取使用者資料或損害網站的安全性。
- 配置錯誤的伺服器回應: 伺服器必須在其回應中包含適當的 Access-Control-Allow-Origin 標頭才能授予權限存取特定的起源。如果此標頭遺失或不正確,瀏覽器將阻止該請求。
解決問題:
- 檢查伺服器回應: 檢查伺服器的回應標頭以確保包含Access-Control- Allow-Origin 標頭並將其設定為所需的origin.
- 在伺服器上啟用CORS:如果伺服器未啟用 CORS,則必須將其配置為支援它。這可能涉及在 Web 伺服器的設定檔中設定 CORS 規則。
- 使用 JSONP: JSONP(帶有 Padding 的 JSON)是允許返回資料的同源策略的解決方法作為函數呼叫而不是 XML 文件。但是,伺服器必須配置為支援 JSONP。
- 使用代理: 伺服器端代理,例如 PHP 腳本或 ASP 服務,可用於從不同的來源並將它們傳遞給客戶端腳本。