文章詳情頁
javascript - 請問為什么CORS中需要對部分請求進行預檢
瀏覽:115日期:2022-12-27 15:34:15
問題描述
CORS的請求分為簡單請求和非簡單請求,對于非簡單請求,CORS定義需要對這些非簡單請求發起一次預檢,也即是發起一個option請求,待確認服務器允許跨域后才會重新發送原先的非簡單請求,所以我想問下為什么需要進行預檢?
這里有一個stack上面的回答,我看的不是太明白,有人愿意翻譯或者簡單概括下?
http://stackoverflow.com/ques...
問題解答
回答1:你要去人家里拿東西,總得經主人同意吧
回答2:跨域是瀏覽器的同源策略搞出來的事情,預請求是瀏覽器行為,拿著當前的域名去問服務端能不能通過。
回答3:最常用的兩個get 默認不存在跨域,意思是你允許 get 就要有被別人拿走的預期,jsonp 就是利用這點;post 存在跨域, 因為按意思會對資源產生影響,必須先檢驗。
回答4:對那些可能對服務器數據產生副作用的 HTTP 請求方法(特別是 GET 以外的 HTTP 請求,或者搭配某些 MIME 類型的 POST 請求),瀏覽器必須首先使用 OPTIONS 方法發起一個預檢請求(preflight request),從而獲知服務端是否允許該跨域請求。服務器確認允許之后,才發起實際的 HTTP 請求。在預檢請求的返回中,服務器端也可以通知客戶端,是否需要攜帶身份憑證(包括 Cookies 和 HTTP 認證相關數據)。
———— HTTP訪問控制(CORS)
標簽:
JavaScript
相關文章:
1. javascript - 微信報redirect_uri參數錯誤2. 我在centos容器里安裝docker,也就是在容器里安裝容器,報錯了?3. android - 類似微信朋友圈或者QQ空間說說那種點擊圖片放大,并且有放大縮小手勢,左右滑動圖片手勢效果4. java - 初學SSM 在import自己寫的包下的類的時候飄紅,求大神解答?5. 網頁動畫等過渡效果,CSS3 transitions 和 jQuery animations 誰實現的性能更好?6. javascript - 怎么簡寫這段jQuery功能?7. springboot中不能獲取post請求參數的解決方法8. javascript - 如何計算字符串寬度?9. java - Atom中文問題10. angular.js - angular中的a標簽不起作用
排行榜
