get方法传递数组参数
url如果使用get方式传递数组,只需传入多个同名参数即可
此时list在后台即可使用数组方式接收
1、通过循环拼接数组参数
将参数拼接到url后面
const list = [1, 2, 3]
let str = '?list='
for (let i = 0, len = list.length; i < len; i++) {
if (i === len - 1) {
str += list[i]
} else {
str += list[i] + '&list='
}
}
// url+str ⇒ url?list=1&list=2&list=3
2、使用axios序列化数组
import axios from 'axios'
import qs from 'qs'
// request拦截器
service.interceptors.request.use(
config => {
if (getToken()) {
config.headers['Authorization'] = 'Bearer ' + getToken() // 让每个请求携带自定义token 请根据实际情况自行修改
}
// 只针对get方式进行序列化
// 传递数组时: ids = [001,002,003] ==> url?ids=001&ids=002&ids=003
if (config.method === 'get') {
config.paramsSerializer = function(params) {
return qs.stringify(params, { arrayFormat: 'repeat' })
}
}
config.headers['Content-Type'] = 'application/json'
return config
},
error => {
// Do something with request error
console.log(error) // for debug
Promise.reject(error)
}
)