axios本身无法满足全局拦截,需要再次封装
代码如下:
import axios from 'axios';
import qs from 'qs';
const instance = axios.create({
//当创建实例的时候配置默认配置
timeout: 600000
});
//添加请求拦截器
instance.interceptors.request.use(function (config) {
if (config.method === "get") {
config.paramsSerializer = params => {
return qs.stringify(params, { indices: false })
}
}
if (config.method === "delete") {
config.paramsSerializer = params => {
return qs.stringify(params, { indices: false })
}
}
if (token) {
Object.assign(config.headers, { "x-token": token })
}
return config;
}, function (error) {
return Promise.reject(error);
});
//添加一个响应拦截器
instance.interceptors.response.use(response => {
return Promise.resolve(response.data);
}, error => {
return Promise.reject(error.response.data);
});
export default instance;