Axios同一請求發送兩次
問題出現原因:Axios默認的Content-Type爲application/json,屬於非簡單請求,所以客戶端在發送請求時,會先發送預請求(OPTIONS),詢問能否向後端發送請求。若能發送,則再發送真正的請求到後端。
解決方案:手動更改Axios默認的請求方式,讓其變爲簡單請求,在相關的axios.js文件中,添加如下配置即可。(後端請使用:@RequestParam接收參數)
import Axios from 'axios'
import Qs from 'qs'
Axios.defaults.headers['Content-Type'] = 'application/x-www-form-urlencoded;charset=UTF-8'
Axios.defaults.transformRequest = [obj => Qs.stringify(obj)]
哪些請求屬於簡單請求?(只有同時滿足以下兩個條件時,纔是簡單請求,除此之外皆爲非簡單請求)
* 請求方式:HEAD,GET,POST
* 請求頭信息: Accept Accept-Language Content-Language Last-Event-ID Content-Type 對應的值是以下三個中的任意一個 application/x-www-form-urlencoded multipart/form-data text/plain