OPTIONS 方法在跨域請求(CORS)中的應用

OPTIONS 方法比較少見,該方法用于請求服務器告知其支持哪些其他的功能和方法。通過 OPTIONS 方法,可以詢問服務器具體支持哪些方法,或者服務器會使用什么樣的方法來處理一些特殊資源??梢哉f這是一個探測性的方法,客戶端通過該方法可以在不訪問服務器上實際資源的情況下就知道處理該資源的最優(yōu)方式。

既然比較少見,什么情況下會使用這個方法呢?

采用Ajax跨域調(diào)用接口的時候,瀏覽器會自動發(fā)起一個 OPTIONS 方法到服務器。

自動發(fā)起的 OPTIONS 請求,其請求頭包含了的一些關(guān)鍵性字段:

OPTIONS /upload HTTP/1.1
Access-Control-Request-Method: POST
Access-Control-Request-Headers: accept, content-type
Origin: http://xxx.com

服務器收到預檢請求后,檢查了Origin、Access-Control-Request-Method和Access-Control-Request-Headers字段以后,確認允許跨源請求,就可以做出回應。

options
OPTIONS /api/User/Register HTTP/1.1
Host: 12.11.10.206:5005
Access-Control-Request-Method: POST
Access-Control-Request-Headers: accept, content-type
Origin: http://localhost
User-Agent: PostmanRuntime/7.18.0
Accept: */*
Cache-Control: no-cache
Postman-Token: 34e5eb85-3c07-48b8-bea8-60477a63047d,0259f642-9d54-4674-8a2a-e063c0482fdc
Host: 114.116.100.206:5005
Accept-Encoding: gzip, deflate
Content-Length: 0
Connection: keep-alive
cache-control: no-cache

上面的HTTP回應中,關(guān)鍵的是Access-Control-Allow-Origin字段,表示orgin 可以請求數(shù)據(jù)。該字段也可以設(shè)為星號,表示同意任意跨源請求。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內(nèi)容