vue中关于get传参数为数组的解决方法
按理来说,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'