常用全局配置
1. 全局配置请求ip及端口号
axios.defaults.baseURL = global.HOST;
2. 配置post请求支持表单提交
(1)构建URLSearchParams对象
let params = new URLSearchParams();
params.append('username', username);
params.append('password', password);
axios.post('/query/goods',params)
(2)使用qs组件全局配置
// global config axios-post using fromData
axios.interceptors.request.use(config => {
if (config.method === "post") {
config.data = qs.stringify(config.data);
config.headers['Content-Type'] = 'application/x-www-form-urlencoded';
}
return config;
}, err => Promise.reject(err));
3.interceptor拦截器
也可以叫中间件、钩子函数,会在特定的操作之前或之后触发。
(1)请求拦截器
在发送请求之前都会首先执行的方法。
// Request interceptor
axios.interceptors.request.use(config => {
// Do something before request is sent
console.log(config);
return config;
}, err => {
// Do something with request error
return Promise.reject(err);
});
(2)返回值拦截器
在返回数据之后都会首先执行的方法。
// Response interceptor
axios.interceptors.response.use(res => {
// Do something with response data
console.log(res);
return res;
}, err => {
// Do something with response error
return Promise.reject(err);
});