在get请求中如果直接传输组:
参数的形式为sourceId[]:1,sourceId[]:2,无法正常那个访问数据;
我们可以采用字符串拼接的方式去实现get请求;

在url上显示的是

在请求接口的时候
export const getBusinessData = params =>
Http.setPromise(`GET`, `/api/v1/app/businessData${params.groupIdStr}`, params)

以上既可以实现传数组的操作啦
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'
我们可以在axios请求拦截器中对参数进行序列化配置
axios.interceptors.request.use(async (config) => {
//只针对get方式进行序列化
if (config.method === 'get') {
config.paramsSerializer = function(params) {
return qs.stringify(params, { arrayFormat: 'repeat' })
}
}
}
qs插件使用原文原文:[https://segmentfault.com/a/1190000020940523?utm_source=tag-newest](https://segmentfault.com/a/1190000020940523?utm_source=tag-newest)
网友评论