import axios from 'axios';
|
import router from '../router/index';
|
import $message from 'element-ui';
|
// 创建axios实例
|
const request = axios.create({
|
baseURL: '/suapi',
|
timeout: 1000 * 100
|
})
|
|
// post请求添加请求头
|
request.defaults.headers.post["Content-Type"] = "application/x-www-form-urlencoded";
|
|
// 请求拦截器
|
request.interceptors.request.use((config) => {
|
const token = sessionStorage.getItem("token")
|
if (token) {
|
config.headers.usertoken = token;
|
}
|
return config
|
})
|
|
// 响应拦截器
|
request.interceptors.response.use((response) => {
|
if (response.status === 200) {
|
if(response.data?.statusCode === '00403') {
|
$message.Message.warning("登陆超时,请重新登录!")
|
router.replace({
|
path: "/login",
|
query: {
|
redirect: router.currentRoute.fullPath
|
}
|
})
|
} else {
|
return Promise.resolve(response.data)
|
}
|
} else {
|
return Promise.reject(response.data)
|
}
|
},
|
(error) => {
|
const { response } = error
|
if (response) {
|
errorHandle(response)
|
return Promise.reject(response.data)
|
} else {
|
$message.Message.error("网络连接超时,请检查网络...")
|
}
|
});
|
|
|
// 统一错误处理方法
|
const errorHandle = (response) => {
|
switch (response.status) {
|
case 400:
|
$message.Message.warning("请求参数错误...")
|
break;
|
case 401:
|
// 登陆后跳转回当前
|
router.replace({
|
path: "/login",
|
query: {
|
redirect: router.currentRoute.fullPath
|
}
|
})
|
break;
|
case 403:
|
$message.Message.warning("登陆超时,请重新登录...")
|
router.replace({
|
path: "/login",
|
query: {
|
redirect: router.currentRoute.fullPath
|
}
|
})
|
break;
|
case 404:
|
$message.Message.error("请求不存在...")
|
break;
|
case 500:
|
$message.Message.warning(response.data.msg || response.data.message)
|
break;
|
default:
|
$message.Message.error("网络连接超时,请检查网络...")
|
}
|
}
|
|
export default request;
|