javascript - 請問為什麼CORS中需要對部分請求進行預檢
曾经蜡笔没有小新
曾经蜡笔没有小新 2017-05-16 13:32:44
0
4
570

CORS的請求分為簡單請求和非簡單請求,對於非簡單請求,CORS定義需要對這些非簡單請求發起一次預檢,也即是發起一個option請求,待確認伺服器允許跨域後才會重新發送原先的非簡單請求,所以我想問為什麼需要進行預檢?

這裡有一個stack上面的回答,我看的不是太明白,有人願意翻譯或簡單概括下?

http://stackoverflow.com/ques...

曾经蜡笔没有小新
曾经蜡笔没有小新

全部回覆(4)
黄舟

你要去人家裡拿東西,總得經主人同意吧

巴扎黑

跨域是瀏覽器的同源策略搞出來的事情,
預請求是瀏覽器行為,拿著當前的網域去問服務端能不能通過。

Ty80

最常用的兩個
get 預設不存在跨域,意思是你允許get 就要有被別人拿走的預期,jsonp 就是利用這點;
post 存在跨域, 因為按意思會對資源產生影響,必須先檢驗。

某草草

對那些可能對伺服器資料產生副作用的HTTP 請求方法(特別是GET 以外的HTTP 請求,或搭配某些MIME 類型的POST 請求),瀏覽器必須先使用OPTIONS 方法發起一個預檢請求(preflight request),從而獲知服務端是否允許該跨域請求。伺服器確認允許之後,才發起實際的 HTTP 請求。在預檢請求的回傳中,伺服器端也可以通知客戶端,是否需要攜帶身分憑證(包括 Cookies 和 HTTP 認證相關資料)。

———— HTTP存取控制(CORS)

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板