axios post请求后台获取不到参数

使用vue开发项目,ajax打算使用axios(听说很牛逼,就想试试)。结果发现post请求后台获取不到参数。

代码如下:

axios. post( '/v1/card/info', {
                        cardNo: this.iccid,
                        loading: true,
                    }). then( resp => {
                         if (resp.data.success) {
                            window.location.href = './detail.html'
                        }
                    })


1、将axios换成jQuery,获取参数没有,所以应该是axios某个设置有问题

2、观察axios请求

axios:

axios post请求后台获取不到参数_第1张图片

很明显axios请求的Content-Type为application-json,所以后台接收不到


解决方案:

这篇文章给出了三种方案:https://segmentfault.com/a/1190000012635783

我使用的是第三种方案,使用qs对参数进行处理

文章中在post请求的时候使用qs.stringify(param),对参数进行处理,这样做每个post请求都需要这样处理,虽然没有问题,但是感觉还是有些别扭,而且每次post请求都需要处理。翻阅axios使用手册时发现axios有拦截器功能,所以就尝试能不能使用拦截器处理,结果证明是可以的。代码如下:

axios post请求后台获取不到参数_第2张图片

这样再次请求数据就正常了

axios post请求后台获取不到参数_第3张图片

你可能感兴趣的:(前端)