Axios同一请求发送两次 解决方案(亲测可行)

本文探讨了Axios发送同一请求两次的问题根源在于其默认的Content-Type设置导致非简单请求。通过修改Axios配置,使其变为简单请求,有效解决了该问题。文章详细介绍了如何更改Axios的默认请求方式,并解释了哪些请求被视为简单请求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值