由于业务需求需要用到iframe
来发送get
请求,用来导出数据列表数据,客户会首先筛选出不同条件下的数据,然后在其中勾选多项进行导出,因此参数中会有id
数组以及query
查询条件数组,但是我们后端需要get
请求中的数组要求是这样的:
id[]=1&id[]=2
query[]={a: 1}&query[]={b: 2}
在不知道qs
之前,我是使用了Array.reduce
方法来构造url
字符串:
id = ids.reduce((acc, curr) => {
return acc + `&ids[]=${curr}`
}, '')
但是自从发现qs
能直接处理这玩意之后,才发现之前做的简直就是无用功:
url = qs.stringify(data); // 即可得标准的get请求url
不过此时qs
默认处理的数组是这样的:
id[1]=1&id[2]=2
这不是我想要的,qs
肯定也能处理:
qs.stringify(data, {arrayFormat: 'brackets'}); // id[]=1&id[]=2