在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' } 僅應在特定場景下考慮:
但是,即使在這些情況下,也存在限制和需要考慮的重要因素。
以上是使用 Fetch 時如何繞過「No Access-Control-Allow-Origin」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!