这里有很多好的答案。但我只想分享我最终使用的内容:(即使在对象中有其他非数组参数,也可以完美运行)
这是我的params对象:
params: {
city: '335471',
size: 4,
page: 1,
type: [1, 2, 3, 4, 5, 6],
}
这是 axios 的 get 方法:
$axios.get('/some/api/endpoint/', {
params,
paramsSerializer: (params) => parseParams(params),
})
function parseParams(params) {
const keys = Object.keys(params)
let options = ''
keys.forEach((key) => {
const isParamTypeObject = typeof params[key] === 'object'
const isParamTypeArray = isParamTypeObject && params[key].length >= 0
if (!isParamTypeObject) {
options += `${key}=${params[key]}&`
}
if (isParamTypeObject && isParamTypeArray) {
params[key].forEach((element) => {
options += `${key}=${element}&`
})
}
})
return options ? options.slice(0, -1) : options
}
最后,使用这种方法,您将发送此请求:
https://yourwebsite.com/api/some/api/endpoint/?city=335471&size=4&page=1&type=1&type=2&type=3&type=4&type=5&type=6
来源:https://github.com/axios/axios/issues/604#issuecomment-420135579
[]
的 URL 仍然有效吗? - Julix