首頁 >web前端 >js教程 >為什麼我的 CORS 策略會阻止來自「https://example.com/」的帶有尾部斜槓的請求?

為什麼我的 CORS 策略會阻止來自「https://example.com/」的帶有尾部斜槓的請求?

Barbara Streisand
Barbara Streisand原創
2024-11-03 15:46:03399瀏覽

Why Does My CORS Policy Block Requests from 'https://example.com/' with a Trailing Slash?

來自來源「https://example.com/」的存取已被CORS 策略阻止:對預檢請求的回應未透過存取控制檢查:確實如此沒有HTTP 可以嗎

TL;DR


Web 來源包含路徑。因此,https://googledocs-clone-sbayrak.netlify.app/不是有效的網路來源。刪除尾隨斜線。

有關CORS Web 起源的更多詳細資訊


Origin 標頭的值中不允許有尾隨斜線


根據CORS協議(Fetch標準中規定),瀏覽器永遠不會設定Origin請求header 為帶有尾部斜杠的值。因此,如果https://googledocs-clone-sbayrak.netlify.app/whatever 上的頁面發出跨來源請求,則該請求的Origin 標頭將包含

,不帶任何尾部斜槓。

伺服器端逐位元組比較


您正在使用Socket.IO,它依賴 Node.js cors 套件。如果要求的來源與您的 CORS 配置的來源值 (https://googledocs-clone-sbayrak.netlify.app/) 不完全匹配,則該套件不會在回應中設定任何 Access-Control-Allow-Origin。

綜合起來一起


顯然,

評估為false,這會導致cors 套件不會在回應中設定任何Access-Control- Allow-Origin 標頭,從而導致CORS 檢查在您的瀏覽器中失敗,因此您觀察到CORS 錯誤。

來自Fetch 的範例標準


Fetch 標準的第3.2.5 節甚至提供了一個關於此錯誤的啟發性範例:

並解釋了為什麼它會導致CORS 檢查失敗:


序列化源沒有尾隨斜線。


以上是為什麼我的 CORS 策略會阻止來自「https://example.com/」的帶有尾部斜槓的請求?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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