get请求时传递的参数有一个是数组时,要做序列化处理。下面是不需要用插件就可以解决的方法
axios有一个方法 paramsSerializer,可以处理params的数组
下面举例:
vue文件里请求时传的是三个参数
methods:{
//发送请求前传参数
let para = {
bizIds:bizIds,
startAt: this.start,
endAt:this.end ,c
}
getData(para).then(res=>{
js代码
)
}
封装的api文件
1.因为传递的是三个参数,所以要拼接一下 在return
封装的 api
export function getData(params) {
return request({
url: '/api',
method: 'get',
params,
paramsSerializer: function(params) {
const bizIds= params.bizIds.map(_=>`bizIds=${_}`).join('&');
const str = bizIds+'&startAt='+params.startAt+'&endAt='+params.endAt
return `${str}` ;
}
})
}
2.如果只有一个参数bizIds
export function getData(params) {
return request({
url: '/api',
method: 'get',
params,
paramsSerializer: function(params) {
const bizIds= params.bizIds.map(_=>`bizIds=${_}`).join('&');
return `${bizIds}` ;
}
})
}