使用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请求的Content-Type为application-json,所以后台接收不到
解决方案:
这篇文章给出了三种方案:https://segmentfault.com/a/1190000012635783
我使用的是第三种方案,使用qs对参数进行处理
文章中在post请求的时候使用qs.stringify(param),这样做每个post请求都需要这样处理,虽然没有问题,但是感觉还是有些别扭,翻阅axios使用手册时发现axios有拦截器功能,所以就尝试能不能使用拦截器处理,结果证明是可以的。代码如下:
这样再次请求数据就正常了