axios的get请求传递数组的问题? hk[] = [1,,2,3]

qq_35984791 2018-10-25 10:43:48
axios使用get的params传递一个数组直接转化 hk[] = [1,2]

我是这样写的

var nk = [1,2,3]
axios.get(urlStr,{
params:{
hk:nk
}
})

单请求的url被拼接为 localhost:8080/api/?hk[] = [1,2,3]
变成了400的非法格式了 如何把它拼接为正确的 localhost:8080/api/?hk=1&hk=2&nk=3


非常感谢大家 这个问题已经困扰我好多天了
...全文
1616 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
虎子8 2019-11-08
  • 打赏
  • 举报
回复
一般简单 数字 字符串的用get 复杂类型用post
  • 打赏
  • 举报
回复 1
楼上+1,qs库完美解决,非常方便。 另外,为什么非要get?一堆url也不好看,post直接传json他不香? 最后再提供一种方法:

let arr = [1, 2, 3];
let result = '?'+arr.map((item, index) => `item${index}=${item}`).join('&');
console.log(result); //output is  '?item1=1&item2=2&item3=3'
Let dreams fly 2019-11-07
  • 打赏
  • 举报
回复
让后台改接口,还能这样传值的?搞锤子呢
風灬雲 2019-11-07
  • 打赏
  • 举报
回复

qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'repeat' })
菜同学 2018-11-11
  • 打赏
  • 举报
回复
引用 1 楼 qq_35984791的回复:
大家帮忙看看
qs插件库应该可以解决
風灬雲 2018-10-25
  • 打赏
  • 举报
回复
这个还是自己处理吧,不要放到params里面去了,自己把url处理好传进去

var nk = [1,2,3]
urlStr+=?
nk.forEach(e=>{
urlStr+="hk="+e+"&"
})
urlStr=urlStr.replace(/&$/,"")
axios.get(urlStr)

qq_35984791 2018-10-25
  • 打赏
  • 举报
回复
大家帮忙看看

87,994

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧