從REST API 取得資料時「要求的資源上不存在'Access-Control-Allow-Origin'標頭」
嘗試從REST API 擷取資料時在本機上工作時使用REST API,您可能會遇到錯誤訊息「Fetch API無法載入。 」此錯誤源自於瀏覽器強制執行的“同源策略”,限制來自不同來源(域、連接埠和協定)的資源相互交互。
克服錯誤
利用CORS 代理
如果您缺乏對託管REST API 的伺服器的控制,並且其回應的唯一問題是缺少所需的Access-Control-Allow-Origin 標頭,您可以利用CORS代理來促進請求。 -anywhere.git
導航到克隆的目錄:cd cors-anywhere/
安裝依賴項:npm install- 建立 Heroku 實例:heroku create
- 部署代理程式:git push heroku master
-
- 部署後,使用產生的代理 URL 作為 REST API URL的字首。檢請求包含授權標頭。 Authorization 標頭。 x-www-form-urlencoded 正文包含JSON格式的參數。標頭的值為“*”,瀏覽器會限制前端JavaScript程式碼對回應的存取。避免使用Chrome CORS 插件,因為他們只是將通用的Access-Control-Allow-Origin: * 標頭注入到回應中,這可能會導致意外的行為。使用帶有 -H 標誌的curl 命令進行可靠的測試。
以上是如何解決從 REST API 取得資料時出現「No 'Access-Control-Allow-Origin' header」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!