美文网首页
在GET请求中传数组

在GET请求中传数组

作者: 追风筝的Hassan | 来源:发表于2019-12-09 11:41 被阅读0次

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


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

以上既可以实现传数组的操作啦

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)

相关文章

网友评论

      本文标题:在GET请求中传数组

      本文链接:https://www.haomeiwen.com/subject/mgkbgctx.html