src目录下新建api文件夹并新建http.js
import axios from ‘axios‘;
import qs from ‘qs‘;
switch (process.env.NODE_ENV) {
case "production":
axios.defaults.baseURL = "http://api.wangjie.com";
break;
case "test":
axios.defaults.baseURL = "http://api.test.com";
break;
default:
axios.defaults.baseURL = "http://localhost:8080"
}
axios.defaults.timeout = 10000;
axios.defaults.withCredentials = true;
axios.defaults.headers[‘Content-Type‘] = ‘application/x-www-form-urlencoded‘;
axios.defaults.transformRequest = data => qs.stringify(data);
axios.interceptors.request.use(config => {
// 携带token
let token = localStorage.getItem(‘token‘);
token && (config.headers.Authorization = token)
return config
}, error => {
return Promise(reject(error))
});
axios.interceptors.response.use(response => {
return response.data;
}, error => {
let { response } = error;
if (response) {
switch (response.status) {
case 401: // 权限不足,未登录状态
break;
case 403: // 服务器拒绝执行 token/session过期
break;
case 404: // 找不到页面
break;
}
} else {
if (!window.navigator.onLine) {
// 断网处理
return;
} else {
return Promise.reject(error);
}
}
})
原文:https://www.cnblogs.com/wangjie11/p/14713605.html