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

  • Post author:
  • Post category:其他


使用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(){
    // 失败回调逻辑代码
  }
})



版权声明:本文为weixin_42736366原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。