vue 解决axios会发送options请求

问题描述:

Vue的开发者都知道axios,很多都用axios来进行数据交互,axios的默认请求头是Content-Type: application/json
使用这个请求头会出现向服务器请求两次的情况

为什么呢?

原因是:浏览器会首先使用 OPTIONS 方法发起一个预请求,判断接口是否能够正常通讯,如果不能就不会发送真正的请求过来,如果测试通讯正常,则开始真正的请求。
这样每个请求都会发送两次,无形加重了服务器的负担,网上有的解决办法是让后台允许options请求,但是并不返回任何数据,那么就不会报错,可是这样治标不治本,浏览器还是访问后台了,只是后台让OPTIONS请求不返回数据而已。

解决:

设置post请求头,对参数进行格式转化,代码如下:

 post(url, data = {}) {
    return _axios({
        method: 'post',
        url,
        data:qs.stringify(data),
        headers:{'Content-Type':'application/x-www-form-urlencoded'}
    })
}

这里如果没有安装qs,则需要安装:

npm install qs -S

这样就能解决axios会发送options请求了

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值