1. 安装qs
npm install qs
2. 导入qs
import qs from 'qs'
3. 配置qs参数处理
(方法1:)axios拦截
axios.interceptors.request.use(config => {
if (config.method === 'get') {
config.paramsSerializer = function(params) {
return qs.stringify(params, { arrayFormat: 'repeat' })
}
}
return config
}, error => {
return Promise.reject(error)
})
(方法2:)直接请求处理
axios.get(`/api/get/batch`,
{
params:{url},
headers:{
Authorization: `Bearer ${token}`
},
// 主要是以下四行代码
paramsSerializer:function(params){
return qs.stringify(params, { arrayFormat: 'repeat' })
}
}).then(result=>{
resolve(result.data)
})
4. 转换后的数组格式有4种
1. qs.stringify({ids: [1, 2, 3]}, { indices: false }) //形式: ids=1&ids=2&id=3
2. qs.stringify({ids: [1, 2, 3]}, {arrayFormat: ‘indices‘}) //形ids[0]=1&aids1]=2&ids[2]=3
3. qs.stringify({ids: [1, 2, 3]}, {arrayFormat: ‘brackets‘}) //形式:ids[]=1&ids[]=2&ids[]=3
4. qs.stringify({ids: [1, 2, 3]}, {arrayFormat: ‘repeat‘}) //形式: ids=1&ids=2&id=3
5. ajax发送list数据到springmvc的controller层报错,提示类型不对
(1). springmvc需要的格式:
list[0].asc=true
list[1].column=create_time
(2). 上面qs使用方式直接改为
qs.stringify(params, { allowDots: true })