一、情况
使用axios发送get请求携带了数组参数时,请求路径中就会多出[]字符,而在后端也会报错
二、解决办法
1、安装qs
当前项目的命令行中安装
npm install qs
2、引入qs库(使用qs
库来将参数对象转换为字符串)
// 全局
import qs from 'qs'
Vue.prototype.$qs = qs
// 局部
import qs from 'qs'
3、实例 business_domain是我们需要向后端传递的参数数组,headers是加载的请求头,主要内容:paramsSerializer
是配置对象的一个属性,它使用qs
库将参数对象转换为字符串,arrayFormat: 'repeat'
选项指定了数组参数应该如何被序列化
export function getUser(params) {
return axios.get('/user', {
params: params,
paramsSerializer: function(params) {
return qs.stringify(params, {arrayFormat: 'repeat'})
}
});
}