無法從主域存取子網域:沒有「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中文網其他相關文章!