vue前端 axios get请求如何传对象数组

后端接口要求传参中的order是对象数组格式,如下:
image.png

我前端应该咋传,我已经传到以下格式:
image.png

前端代码如下:

pageQuery:{
          name:null,
          flag:null,
          current:1,
          size:10,
        },

this.pageQuery.orders = JSON.stringify([{column: 'createDate', asc: 'true'}]);
    await this.$http.get('/api/admin/carType/list',{params:this.pageQuery}).then(res => {
     this.listLoading = false;
     this.tableData = res.data.data.records;
     this.total = res.data.data.total;
   }).catch(err => {
     this.listLoading = false;
   })

但是后端还是接收不到,本人新手小白,还请大佬指教

补充1:
在swagger上测试后发现,请求url里的参数部分解码过后就是:

(url)+orders[0].asc='true'&order[0].column='createDate'

get请求,前端要咋传,才能传成order[0].key=value这种格式

阅读 10.3k
4 个回答
import qs from 'qs'

const service = axios.create({
  paramsSerializer: params => {
    return qs.stringify(params, { allowDots: true, arrayFormat: 'repeat' })
  }
})

repeat不行那就试bucket

用post请求,放到body里面,对象数组就不适合放到链接上。

后端获取的数据应该还是从body里面拿的,只是定义的方式是get,把params换成data

image.png

var data = {
  current:1,
  size:10,
  orders :[{column: 'createDate', asc: 'true'}]
}
console.log(qs.stringify(data, { allowDots: true,encode: false }))
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏