為什麼「請求的資源上沒有Access-Control-Allow-Origin header」
問題是當瀏覽器發出跨來源請求(CORS)時),瀏覽器首先向伺服器發送預檢請求,檢查伺服器是否支援CORS,如果支持,則允許哪些方法、標頭和來源。
伺服器應使用以下內容回應預檢請求:適當的 CORS 標頭。如果伺服器沒有回應所需的標頭,瀏覽器將阻止實際請求。
在這種情況下,伺服器不會回應 Access-Control-Allow-Origin 標頭,這告訴瀏覽器:允許來源存取該資源。
如何修復
有幾種方法可以解決此問題:
- 新增存取控制-預檢請求回應的Allow-Origin 標頭。這可以透過在程式碼中使用中間件來完成。
- 將 Access-Control-Allow-Origin 標頭設為「*」以允許所有來源。但是,出於安全原因,不建議這樣做。
- 使用可以將 Access-Control-Allow-Origin 標頭加入到回應中的反向代理。
附加說明
- 也可以為特定來源設定 Access-Control-Allow-Origin 標頭。例如,若要允許來自 https://example.com 的請求,您可以將標頭設定為 Access-Control-Allow-Origin:https://example.com。
- Access-Control-Allow-只有跨來源請求才需要 Origin 標頭。如果請求來自同源,則瀏覽器不會傳送預檢請求,伺服器也不需要回應 Access-Control-Allow-Origin 標頭。
以上是為什麼我會看到“No Access-Control-Allow-Origin Header”錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!