1 回答

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