请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

处理请求 URL 参数的另外一种情况

黄老师,您好,我考虑到还有一种URL参数处理,发送的参数为数组,且数组里面还有对象,例子如下:

axios({
  method: 'get',
  url: '/base/get',
  params: {
    food: [
      { id: 1, name: 'food1' },
      { id: 2, name: 'food2' }
    ]
  }
})

通过处理参数应该转换为以下参数:

food[0][id]: 1
food[0][name]: food1
food[1][id]: 2
food[1][name]: food2

现在项目里暂没这处理这种情况哦,请问一下,这种情况是否需要考虑呢?

正在回答

1回答

ustbhuangyi 2019-04-28 23:24:48

这种情况考虑了呀,如果数组中的值是一个对象,就直接 JSON.stringify 了,官网 axios 也是一样的处理方式

1 回复 有任何疑惑可以回复我~
  • 提问者 梁凤波 #1
    好的,貌似axios后来加了paramsSerializer方法,这是一个负责 params 序列化的函数,有时候使用GET发送请求传递像数组包含对象后台会接收不到,需要前端做处理
    
    ```js
    paramsSerializer: function (params) {
      return qs.stringify(params)
    }
    ```
    回复 有任何疑惑可以回复我~ 2019-04-28 23:34:47
  • ustbhuangyi 回复 提问者 梁凤波 #2
    嗯,这个功能我们后续也会加的,允许用户自定义一个序列化器
    回复 有任何疑惑可以回复我~ 2019-04-28 23:39:14
  • 提问者 梁凤波 回复 ustbhuangyi #3
    好的,谢谢老师
    回复 有任何疑惑可以回复我~ 2019-04-28 23:39:45
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信