」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 如何修復跨來源請求中的「Access-Control-Allow-Headers 不允許請求標頭欄位 Access-Control-Allow-Headers」錯誤?

如何修復跨來源請求中的「Access-Control-Allow-Headers 不允許請求標頭欄位 Access-Control-Allow-Headers」錯誤?

發佈於2024-11-03
瀏覽:651

How to Fix the \

解決「Access-Control-Allow-Headers 不允許請求標頭欄位Access-Control-Allow-Headers」錯誤

In為了糾正最初的錯誤,將標頭添加到請求中以允許各種方法和標頭。但是,這導致了一個新錯誤:「Access-Control-Allow-Headers 不允許請求標頭欄位Access-Control-Allow-Origin。」

了解CORS 和預檢請求

此問題源自於瀏覽器針對某些內容類型的跨來源請求發送預檢OPTIONS 請求。預設情況下,Angular 發送具有 application/json 內容類型的數據,這會觸發此預檢請求。

伺服器回應與標頭

伺服器必須明確允許存取-其回應中的 Control-Allow-Headers 標頭可防止錯誤。否則,瀏覽器會將回應解釋為不允許任何標頭。

解決方案:修改內容類型或伺服器回應

若要解決此問題,請修改用戶端或伺服器設定:

1 .客戶端(Angular):

將預設的Angular 內容類型覆寫為application/x-www-form-urlencoded,這不會觸發預檢請求:

$http.post(url, data, {
    headers : {
        'Content-Type' : 'application/x-www-form-urlencoded; charset=UTF-8'
    }
});

2.伺服器端:

或者,允許伺服器上的 Access-Control-Allow-Headers 標頭。必須設定以下回應標頭:

  • Access-Control-Allow-Origin: * 或特定來源(例如,https://example.com)
  • Access-Control -Allow -Methods:GET、POST、PUT、DELETE、OPTIONS
  • Access-Control-Allow-Headers:客戶端在請求中發送的所有標頭(例如,Content-Type、Authorization)
最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3