首頁 > web前端 > js教程 > 使用 Fetch 時如何繞過「No Access-Control-Allow-Origin」錯誤?

使用 Fetch 時如何繞過「No Access-Control-Allow-Origin」錯誤?

DDD
發布: 2024-12-14 10:17:10
原創
142 人瀏覽過

How Can I Bypass

在Fetch 請求中使用CORS

使用fetch 存取跨域資源時,經常會遇到「No access-control-允許原點”錯誤。這可以防止客戶端 JavaScript 由於跨域限製而存取回應。

傳遞 { mode: 'no-cors' } 來 Fetch

與預期相反, { mode: 'no-cors' } 不會緩解這個問題。相反,它嚴格阻止 JavaScript 對回應正文和標頭內容的存取。

解決方案:CORS 代理

為了克服這個問題,可以使用 CORS 代理。代理位於客戶端和目標網站之間。它接受請求,將其轉發到目標站點,並接收回應。至關重要的是,代理程式添加了「Access-Control-Allow-Origin」回應標頭,讓客戶端程式碼存取回應。

為什麼Postman 可以存取端點

雖然Postman 允許在沒有「Access-Control-Allow-Origin」標頭的情況下存取端點,但Web 瀏覽器會存取端點施加跨域限制。此標頭是客戶端 JavaScript 與回應互動所必需的。

關於禁用 CORS 的誤解

當旨在「停用 CORS」時,實際意圖是停用同源策略。事實上,CORS 提供了一種透過允許某些跨域存取來放鬆此政策的方法。

何時使用{ mode: 'no-cors' }

{ mode: 'no-cors' } 僅應在特定場景下考慮:

  • 將內容嵌入到HTML 元素使用JavaScript,但不直接透過其屬性。
  • 使用 Service Workers 和快取儲存 API 快取資源。

但是,即使在這些情況下,也存在限制和需要考慮的重要因素。

以上是使用 Fetch 時如何繞過「No Access-Control-Allow-Origin」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板