axios的get方法传递对象数组


问题描述


使用​​axios​​​发送​​get​​请求,传递参数如下格式:


const params = {
filter: [{
property: 'optionTypeId',
operator: 'eq',
value:'TYPE10'
}]
}

发送请求后,发现请求失败,查看控制台参数为如下内容,发现参数格式不正确,​​filter​​​ 后多了一个​​[]​​ 。

axio使用get方法之传递对象数组问题及解决方法_axios

解决办法

let vm = this;
let queryParam = [
{
property: 'optionTypeId',
operator: 'eq',
value:'TYPE10'
}
];
const params = {
filter: JSON.stringify(queryParam)
};
this.$http({
url: this.$http.adornUrl('/api/option/list'),
method: 'get',
params: this.$http.adornParams(params),
paramsSerializer: function(params) {
return qs.stringify(params, {arrayFormat: 'repeat'})
}
}).then(({data}) => {
if (data && data.success) {
vm.options = data.result;
} else {
this.$message.error(data.msgId)
}
})

查看控制台显示参数正确:

axio使用get方法之传递对象数组问题及解决方法_vue_02