按理来说,get请求方式是没有数组的,get请求方式带参数都是字符串,需要和后端协商是用某个标识符分割开,例如“|” “,”。
当然如果需要数组的话,也能解决。
问题:
当我们需要通过get方式传递一个数组作为参数 groupId:[1,2,3,4]
结果出来是这样:
http://localhost:88/api/galaxy/device/list?t=1651822846899&page=1&limit=10&groupId[]=1&groupId[]=1447&groupId[]=1449&groupId[]=1451&groupId[]=1448&groupId[]=1450
解决方法:
方法1:
axios.get("https://www.cnblogs.com/enter",{
params: {
groupId:this.groupId
},
paramsSerializer: function(params) {
const keys= params.keys.map(_=>`keys=${_}`).join('&');
return `${keys}` ;
}
}).then((res)=>{
//成功后的处理
});
方法2:
qs插件
1、qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'indices' })
// 输出结果:'a[0]=b&a[1]=c'
2、qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'brackets' })
// 输出结果:'a[]=b&a[]=c'
3、qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'repeat' })
// 输出结果:'a=b&a=c'
4、qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'comma' })
// 输出结果:'a=b,c'