使用axios的get方法传包含数组的对象
axios get传递包含数组的对象
·
起因
使用axios进行前后端传值交互时传递的参数是对象,其中包含了一个数组,发送给后端的参数格式为‘’list[]=1&list[]=2‘’,后端无法解析这个参数
解决方案
我们将数据调整为list=1&list=2这种格式
import request from '@/utils/request'
export function fetchList(params) {
return request({
url: 'xxxxxxx',
method: 'get',
params: params,
paramsSerializer: function (params) {
const keys = Object.keys(params)
const arr = []
keys.forEach(item => {
if (Array.isArray(params[item])) {
console.log(params[item]);
if (params[item].length == 0) {
} else {
const url = params[item].map(_ => `${item}=${_}`).join('&')
arr.push(url)
}
} else {
if (params[item] == null) {
} else { arr.push(`${item}=${params[item]}`) }
}
})
const result = arr.join('&')
console.log(result)
return `${result}`
}
})
}
原因
axios的get请求中会将对象转为url中的解码方式将array解码为arr[]=value,这种格式java获取参数是有问题的,所以我们直接通过axios预先设计的序列化参数paramsSerializer,来自己生成url
更多推荐
已为社区贡献1条内容
所有评论(0)