在vue中使用axios請求post接口藕施,請求會發(fā)送兩次
image.png
image.png
所有跨域的js在提交post請求的時候,如果服務(wù)端設(shè)置了可跨域訪問都會默認發(fā)送兩次請求凸郑,第一次是預(yù)檢請求裳食,查詢是否支持跨域,第二次才是真正的post提交芙沥。JS中出現(xiàn)這個現(xiàn)象原因在于你發(fā)送了一個非簡單請求诲祸。
瀏覽器分為簡單請求以及非簡單請求:
跨域請求需要先發(fā)一次Option預(yù)請求,OPTIONS是檢驗是否允許跨域的憨愉,如果不希望OPTIONS請求烦绳, 直接讓后端遇到option直接返回就可以了,前端可不做處理配紫。
簡單請求:
以下三項必須都成立:
1. 只能是Get径密、Head、Post方法
2. 除了瀏覽器自己在Http頭上加的信息(如Connection躺孝、User-Agent)享扔,開發(fā)者只能加這幾個:Accept、Accept-Language植袍、Content-Type惧眠、。于个。氛魁。。
3. Content-Type只能取這幾個值:
application/x-www-form-urlencoded
multipart/form-data
text/plain
只有同時滿足以上條件時,才是簡單請求,否則為非簡單請求