首頁  >  文章  >  後端開發  >  儘管進行了正確的 CORS 配置,為什麼子網域上的 API 伺服器無法回應「Access-Control-Allow-Origin」標頭?

儘管進行了正確的 CORS 配置,為什麼子網域上的 API 伺服器無法回應「Access-Control-Allow-Origin」標頭?

Patricia Arquette
Patricia Arquette原創
2024-10-30 02:41:28726瀏覽

Why Does My API Server on a Subdomain Fail to Respond with the 'Access-Control-Allow-Origin' Header Despite Proper CORS Configuration?

無法從主域存取子網域:沒有「Access-Control-Allow-Origin」標頭

當您嘗試造訪時會出現問題從主網域上的React 應用程式存取託管在子網域上的API 伺服器。使用 CORS(跨網域資源共用)進行跨網域通訊時,伺服器必須傳送 'Access-Control-Allow-Origin' 標頭來指定允許哪些網域存取。

問題定義

嘗試從React 應用程式存取API 時遇到CORS 策略錯誤,並顯示錯誤訊息「要求的資源上不存在'Access-Control-Allow -Origin'標頭」。儘管使用不同的方法來設定 CORS 中間件,包括使用 gin-contrib/cors 庫和手動新增標頭,但錯誤仍然存在。

解決方案

它變成發現問題不在於伺服器端 CORS 配置,而在於 AWS 負載平衡器目標群組上的設定。您先前已在目標群組中將協定設定為 HTTPS,即使您僅向 Route 53 和 ALB 提供了 ACM 憑證。在目標群組中將 HTTPS 替換為 HTTP 後,問題就解決了,並且可以從 React 應用程式存取 API。

調試 CORS 問題

診斷 CORS-相關問題,使用 Chrome DevTools 或 cURL 等專用工具檢查預檢請求至關重要。檢查預檢響應標頭以確保存在預期的“Access-Control-Allow-Origin”標頭。如果回應指示除 204 No Content 之外的狀態代碼,則可能表示伺服器端回應或其用戶端解釋有問題。

以上是儘管進行了正確的 CORS 配置,為什麼子網域上的 API 伺服器無法回應「Access-Control-Allow-Origin」標頭?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn