美文网首页vue之起飞之旅
axios get 发送数组的坑

axios get 发送数组的坑

作者: 还好还好L | 来源:发表于2019-08-14 11:03 被阅读0次
    起因,公司后台使用restfull 风格的api , 后台接口他们已经用个方法完全封装好了,所以所有 请求的得在前端处理。

    有个报表查询 用数组 发送请求的, 正常用axios 发送请求后 后台返回我发送的不是一个数组 。我当场跑去和后台撕逼,然后撕不赢 说我的请求不是正常的http请求。????? 可能是我太菜吧。然后去百度方法。
    找到了qs 处理的方法。

    复现 错误的代码

      
    let data = {
      a:'11',
      b:[1,2,3]
    }  
    let datas = await getInfo(data)
    

    控制台图


    Snipaste_2019-08-14_10-47-13.png

    ??? 当场懵逼 数组不是这样吗?(确实不是这样的的)

    错误代码2

      
    let data = {
      a:'11',
      b: JSON.stringif( [1,2,3])
    }  
    let datas = await getInfo(data)
    

    控制台图


    Snipaste_2019-08-14_10-50-01.png

    后台说也不是这样 ... 当场奔溃
    然后去网上找到了qs axios 自带qs 可能也考虑了这个问题吧
    在请求时加上一行代码后

    axios.get(url, {
        params: {
         ids: [1,2,3],
         type: 1
        },
        paramsSerializer: params => {
          return qs.stringify(params, { indices: false })
        }})
    

    也不对啊 他吧 数组下标变成了 key

    微信截图_20190814110237.png 微信截图_20190814110301.png

    然后我去npm 上看了下qs 文档 找到了下面这句话


    qs.png

    意思是 把 a[0]=1 变成 a=1&a=2&a=3 ???? WTF 网上代码太不靠谱了吧

    改变后

    axios.get(url, {
        params: {
         ids: [1,2,3],
         type: 1
        },
        paramsSerializer: params => {
          return qs.stringify(params)
        }})
    

    最终正确的数据截图

    end.png

    是它 是它 就是 它 正确的后台要的格式.....

    相关文章

      网友评论

        本文标题:axios get 发送数组的坑

        本文链接:https://www.haomeiwen.com/subject/wuqkjctx.html