Axios -处理列表和“分解”查询字符串参数[重复]

juud5qan  于 2023-01-13  发布在  iOS
关注(0)|答案(1)|浏览(131)
    • 此问题在此处已有答案**:

How to correctly use axios params with arrays(14个答案)
15小时前关门了。
我用的是axios。
我的应用以典型方式发送查询字符串和一些GET请求:

axios.get({ url: 'whatever.com', params: { key: 'value' } });

但是,如果查询字符串值是数组,则会遇到问题:

// The URL is the escaped stringified array, with brackets: whatever.com?key=%5B%27value1%27%2C%20%27value2%27%5D
axios.get({ url: 'whatever.com', params: { key: ['value1', 'value2'] } });

相反,我希望它看起来像whatever.com?key=value1,value2
我可以添加一些自定义代码来将数组值预解析为字符串,但是:
1.我想知道axios是否有这方面的工具。
1.这是有风险的,因为如果值本身有逗号,它们就不能被拆分。
作为第二个问题的解决方案,可以将查询参数序列化为"分解"格式,例如whatever?key=value1&key=value2,这样即使值包含逗号也可以解析。
这样做的问题是,我不能再将这些querystring参数作为params传递给axios对象(因为我将传递一个带有重复键的JS对象),而是必须将qs附加到url,而不是使用axios的params功能,并破坏了我的一些工具。
axios有没有内置的方法来处理数组查询参数(特别是分解的)?有没有内置的方法来区分"分解的"和"列表"样式的查询参数?有没有关于如何处理的建议?

hxzsmxv2

hxzsmxv21#

关于这个例子
whatever.com?key=value1,value2
有一个简单的方法可以到达它

axios.get({ url: 'whatever.com', params: { key: ['value1', 'value2'].join(',') } });

相关问题