如何在数组中正确使用 axios 参数

新手上路,请多包涵

如何在查询字符串中向数组添加索引?

我试过这样发送数据:

 axios.get('/myController/myAction', { params: { storeIds: [1,2,3] })

我得到了这个网址:

 http://localhost/api/myController/myAction?storeIds[]=1&storeIds[]=2&storeIds[]=3

所以,我应该得到这个网址:

 http://localhost/api/myController/myAction?storeIds[0]=1&storeIds[1]=2&storeIds[2]=3

我应该在我的参数选项中添加什么来获取这个 url?

原文由 Zin Kun 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 293
2 个回答

您可以使用 paramsSerializer 并使用 https://www.npmjs.com/package/qs 序列化参数

axios.get('/myController/myAction', {
  params: {
    storeIds: [1,2,3]
  },
  paramsSerializer: params => {
    return qs.stringify(params)
  }
})

原文由 Nicu Criste 发布,翻译遵循 CC BY-SA 4.0 许可协议

无需添加更多库并使用 ES6,您可以编写:

 axios.get(`/myController/myAction?${[1,2,3].map((n, index) => `storeIds[${index}]=${n}`).join('&')}`);

原文由 Sergio Loaiza 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏