当我们需要通过get方式传递一个数组作为参数 status:[1,2]
预期是解析为:https://www.seal.com/sealAudit?status=1&tag=2
然而真相是这样的:https://www.seal.com/sealAudit?tag[]=1&tag[]=2,
后台是不可能解析到传递的参数。
解决方式:
1.单个处理
axios.get("https://seal.com/sealAudit",{
params: {
keys:this.status
},
paramsSerializer: function(params) {
const keys= params.keys.map(_=>`keys=${_}`).join('&');
return `${keys}` ;
}
}).then((res)=>{
//成功后的处理
});
2.axios配置,统一处理
axios.interceptors.request.use(async (config) => {
//只针对get方式进行序列化
if (config.method === 'get') {
config.paramsSerializer = function(params) {
return qs.stringify(params, { arrayFormat: 'repeat' })
}
}
}