關於前端通過post請求調伺服器資訊的時候,我們會發現兩條請求,一條請求的Request Method為Options,另一條請求的Reuest Method為Post。
在網上閱讀一些資訊之後發現和三個基本概念有關係
- Http Options Method
簡而言之,OPTIONS請求方法的主要用途有兩個:
- 獲取伺服器支援的HTTP請求方法;
- 用來檢查伺服器的效能。
- CORS(跨域資源共享)
CORS是一種網路瀏覽器的技術規範,它為Web伺服器定義了一種方式,允許網頁從不同的域訪問其資源。而這種訪問是被同源策略所禁止的。CORS系統定義了一種瀏覽器和伺服器互動的方式來確定是否允許跨域請求。
- 前端
客戶端使用XmlHttpRequest發起Ajax請求,當前絕大部分瀏覽器已經支援CORS方式,且主流瀏覽器均提供了對跨域資源共享的支援。
- 伺服器端
如果伺服器端未做任何配置,則前端發起Ajax請求後,會得到CORS Access Deny,即跨域訪問被拒絕。
- Preflighted Requests(預檢請求)
Preflighted Requests是CORS中一種透明伺服器驗證機制。預檢請求首先需要向另外一個域名的資源傳送一個 HTTP OPTIONS 請求頭,其目的就是為了判斷實際傳送的請求是否是安全的。
下面的2種情況需要進行預檢:
- 簡單請求,比如使用Content-Type 為 application/xml 或 text/xml 的 POST 請求;
- 設定自定義頭,比如 X-JSON、X-MENGXIANHUI 等。