get请求方法中传递数组,后端获取不到怎么办?

本文探讨了如何在axios和ajax中正确处理数组参数,通过导入qs库和使用paramsSerializer或traditional选项,解决了在URL中传递数组时的编码问题,提供了解决方案和示例代码。
摘要由CSDN通过智能技术生成

使用axios或者ajax调用后端接口,正常在get方法中传递数字、字符串等是直接拼接在url后面的,但是一旦参数为数组就显得很怪异。

现象

在这里插入图片描述
不仅前端看起来很怪异,后端肯定也取不到这个字段的数据。

解决方法

axios

首先import qs from 'qs’,其次需要参数序列化 paramsSerializer

import qs from 'qs’

// 接口请求
export function permissionUpd(roleId, menuIds, permission) {
  return request({
    permission: permission,
    url: '/admin/role/roleMenuUpd',
    method: 'put',
    params: {
      roleId: roleId,
      menuIds: menuIds
    },
    paramsSerializer: params => {
      return qs.stringify(params, {
        indices: false
      })
    }
  })
}

ajax

添加 traditional:true

$.ajax({
  type: 'get',
  url: '/admin/role/roleMenuUpd',
  data: requestJson,
  async: true,
  traditional: true,
  success: function(){
    // 成功回调逻辑代码
  },
  error: function(){
    // 失败回调逻辑代码
  }
})
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值