使用axios时遇到的Request Method: OPTIONS请求,会同时发送两次请求问题
新接手的一個(gè)項(xiàng)目中,發(fā)現(xiàn)一些接口在請(qǐng)求時(shí),會(huì)自動(dòng)發(fā)送一個(gè)
Request Method: OPTIONS的請(qǐng)求,我查了一遍代碼,不是代碼中寫(xiě)明的。就上網(wǎng)搜了一下,網(wǎng)上給出的解釋涉及到了兩個(gè)關(guān)鍵詞:
簡(jiǎn)單請(qǐng)求和復(fù)雜請(qǐng)求。
簡(jiǎn)單請(qǐng)求和復(fù)雜請(qǐng)求。
簡(jiǎn)單請(qǐng)求
滿(mǎn)足下面兩個(gè)條件的請(qǐng)求是簡(jiǎn)單請(qǐng)求:
- HEAD
- GET
- POST
- Accept
- Accept-Language
- Content-Language
- Last-Event-ID
- Content-Type
但是Content-Type的值,只限于三個(gè)值:
application/x-www-form-urlencoded、multipart/form-data、text/plain
復(fù)雜請(qǐng)求
非簡(jiǎn)單請(qǐng)求就是復(fù)雜請(qǐng)求。
復(fù)雜請(qǐng)求的CORS請(qǐng)求,會(huì)在正式通信之前,增加一次HTTP查詢(xún)請(qǐng)求,稱(chēng)為“預(yù)檢”請(qǐng)求(preflight)。預(yù)檢請(qǐng)求為OPTIONS請(qǐng)求,用于向服務(wù)器請(qǐng)求權(quán)限信息。預(yù)檢請(qǐng)求被成功響應(yīng)后,才會(huì)發(fā)出真實(shí)請(qǐng)求,攜帶真實(shí)數(shù)據(jù)。
axios默認(rèn)請(qǐng)求就是application/json,所以不需要自己加上頭部(不需要在config中加headers),所以總是會(huì)發(fā)出options請(qǐng)求的,看看是不是配置的時(shí)候加了不必要的headers配置項(xiàng)。
另外,如果真的需要預(yù)檢,后臺(tái)也需要進(jìn)行設(shè)置,允許options請(qǐng)求。
原文:https://www.jianshu.com/p/9e52ca6b8818
?
總結(jié)
以上是生活随笔為你收集整理的使用axios时遇到的Request Method: OPTIONS请求,会同时发送两次请求问题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Dubbo本地调用
- 下一篇: 通过反射给属性赋值代码示例