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