import axios from 'axios';
// 创建实例
const instance = axios.create({});
// 基础配置
instance.defaults.baseURL = '';
instance.defaults.timeout = 10000; // 超时时间
instance.defaults.withCredentials = true; // 是否允许携带cookie
// json(默认)
instance.defaults.headers.put['Content-Type'] = 'application/json;charset=UTF-8';
// 请求拦截
instance.interceptors.request.use(config => {
return config;
});
/* // form data -> post
import qs from 'qs'; // npm install --save qs
instance.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=UTF-8';
// 请求拦截
instance.interceptors.request.use(config => {
if (config.method === 'post') {
config.data = qs.stringify(config.data);
}
return config;
});
*/
// 响应拦截
instance.interceptors.response.use(response => {
const { status } = response;
if (status === 200) {
return Promise.resolve(response);
} else {
return Promise.reject(response);
}
}, error => {
if (error.response.status) {
switch(error.response.status) {
// 未登录
case 401 :
break;
// 登录失效
case 403 :
break;
// Not Found
case 404 :
break;
// 服务器错误
case 500 :
break;
default :
break;
}
return Promise.reject(error.response);
}
});
export default instance;
网友评论