1 回答

TA貢獻1877條經驗 獲得超1個贊
現代瀏覽器首先通過 HTTP OPTIONS 調用檢查 API 服務器上的 CORS 策略。這稱為“預檢請求”。
CORS:https ://developer.mozilla.org/en-US/docs/Web/HTTP/CORS
HTTP 選項:https ://developer.mozilla.org/en-US/docs/Web/HTTP/Methods/OPTIONS
實際上,瀏覽器首先檢查 API 服務器是否有權從源(用戶瀏覽的網站,由域、協議和端口標識)調用和使用 API。如果 API 服務器希望從源進行調用,它會向 OPTIONS 調用返回成功響應,然后瀏覽器繼續進行 GET/POST/etc 調用。但是,如果 API 服務器無法識別來自 OPTIONS 調用的來源,它將返回失敗響應,并且瀏覽器將不會繼續 API 調用,而是生成您觀察到的異常。
CORS + HTTP OPTIONS 是保護 API 訪問和減輕跨站點腳本引起的過多安全和隱私問題的武器庫中的一種機制。
但就您而言,CORS 不會影響來自非瀏覽器應用程序的調用。非瀏覽器應用程序(例如 CURL 或您可以用 Python、Node 等編寫的任何代碼)不會進行 OPTIONS 調用,因此 API 服務器的 CORS 策略不適用。
您可以設置一個中間人/代理服務器來接收來自您的 Web 應用程序的 API 請求,調用目標 API 服務器并編組返回響應,從而繞過 CORS 策略。
添加回答
舉報