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
非常感谢大家 这个问题已经困扰我好多天了

解决方案 »

  1.   

    这个还是自己处理吧,不要放到params里面去了,自己把url处理好传进去var nk = [1,2,3]
    urlStr+=?
    nk.forEach(e=>{
       urlStr+="hk="+e+"&"
    })
    urlStr=urlStr.replace(/&$/,"")
    axios.get(urlStr)
      

  2.   


    qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'repeat' })
      

  3.   

    一般简单 数字 字符串的用get  复杂类型用post
      

  4.   

    楼上+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'