Axios同一请求发送两次 解决方案

2019年11月16日 11点热度 0人点赞 0条评论

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
 

未经允许不得转载!Axios同一请求发送两次 解决方案

update

纸上得来终觉浅, 绝知此事须躬行。