首頁 > web前端 > js教程 > 為什麼我在發出跨來源請求時收到「不存在『Access-Control-Allow-Origin』標頭」錯誤?

為什麼我在發出跨來源請求時收到「不存在『Access-Control-Allow-Origin』標頭」錯誤?

DDD
發布: 2024-12-28 09:43:17
原創
999 人瀏覽過

Why Am I Getting a

使用JavaScript 取得資料時「不存在'Access-Control-Allow-Origin' 標頭」

跨域資源共享(CORS ) )是一種允許Web 瀏覽器向其他網域發出請求的機制,解決了不同來源帶來的安全性問題。若要啟用 CORS,伺服器必須在其回應中包含特定標頭,例如「Access-Control-Allow-Origin」。

1。使用 CORS 代理

如果您的伺服器缺少必要的標頭,您可以在客戶端和伺服器之間實現 CORS 代理程式。此代理程式(例如 CORS Anywhere)可以重寫回應以包含缺少的標頭,從而啟用跨來源請求。

2.避免 CORS 預檢

CORS 預檢請求是瀏覽器發送的 OPTIONS 請求,用於確定伺服器是否允許跨域請求。為了避免觸發預檢,請確保您的要求:

  • 不要使用憑證(授權標頭)。
  • 使用伺服器接受的媒體類型,無需自訂 Content-Type 標頭(例如,應用程式/x-www-form-urlencoded)。

3.修正通配符Access-Control-Allow-Origin 標頭

對於有憑證的請求,瀏覽器會拒絕帶有通配符(* ) Access-Control-Allow-Origin 標頭的回應。相反,標頭值必須與請求客戶端的來源相符。若要解決此問題:

  • 設定伺服器將 Origin 請求標頭回顯到 Access-Control-Allow-Origin 回應標頭中。
  • 避免使用 Chrome CORS 插件,這可能會導致 false的正面。

4。請求與回應中的標頭

刪除 JavaScript 程式碼 (headers.append(...)) 中設定 Access-Control-Allow-* 標頭的行。這些是不應包含在請求中的回應標頭。

以上是為什麼我在發出跨來源請求時收到「不存在『Access-Control-Allow-Origin』標頭」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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