最近用vue做项目,在用axios调用接口的时候,报错:参数格式不正确,传参格式如下:
![](https://i-blog.csdnimg.cn/blog_migrate/f0592b7615def2298b6a5a2f122d8573.png)
百度了下,用URLSearchParams 方法处理参数,试了一下,恩,很有用。
方案一:
transformRequest: [function (data, headers) {
//此处是重点,将axios的默认以json方式发送数据 转为 以url string格式发送数据
//URLSearchParams的兼容需要babel-polyfill支持
//如果参数是一维的,可不使用URLSearchParams,自己用key1=value1&key2=value2的格式拼接后返回即可
let q = new URLSearchParams();
for(let i in data){
q.append(i, data[i]);
}
console.log(q.toString());
return q.toString();
}]
一段时间后,换了个设备,问题就来了,不兼容啊,尝试过babel-profill 还是没能解决
emmmm,再一次百度,换了种方法,采用qs处理参数
方案二:
1、安装qs:npm install --save axios vue-axios qs
2.引入:
import Qs from 'qs'
2:配置axios
transformRequest: [function (data) {
data = Qs.stringify(data);
return data;
}]
最后放一张正确的参数格式图