sys_init.js
4.3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
import jsutil from "@/common/js/util";
import axios from "@/axios";
var axois_init = {
init_axios: (message,router,axios) => {
axios.defaults.baseURL = '/api';
axios.interceptors.response.use(
res => {
//对响应数据做些事
if (res.data && res.status!==200) {
message({
// 饿了么的消息弹窗组件,类似toast
showClose: true,
message: 'res.data.error.message.message ? res.data.error.message.message : res.data.error.message',
type: "error"
});
return Promise.reject(res.data.error.message);
}
return res;
},
error => {
// 用户登录的时候会拿到一个基础信息,比如用户名,token,过期时间戳
// 直接丢sessionStorage
if (!sessionStorage.getItem("token")) {
// 若是接口访问的时候没有发现有鉴权的基础信息,直接返回登录页
// router.push({
// // path: "/login"
// path: "/main"
// });
}
// 下面是接口回调的satus ,因为我做了一些错误页面,所以都会指向对应的报错页面
if (error.response.status === 401) {
message({
// 饿了么的消息弹窗组件
message: '授权超时,或访问未授权,请重新登录',
type: "error"
});
}
// 下面是接口回调的satus ,因为我做了一些错误页面,所以都会指向对应的报错页面
if (error.response.status === 403) {
router.push({
path: "/error/403"
});
}
if (error.response.status === 500) {
message({
// 饿了么的消息弹窗组件
message: error.message,
type: "error"
});
// router.push({
// path: "/error/500"
// });
}
if (error.response.status === 502) {
router.push({
path: "/error/502"
});
}
if (error.response.status === 404) {
message({
// 饿了么的消息弹窗组件
message: "访问不存在",
type: "error"
});
}
let errorInfo = "出错了";
if(jsutil.checkNull(error.response)){
errorInfo = error.response.statusText
}else if(jsutil.checkNull(error.data) && jsutil.checkNull(error.data.error) && jsutil.checkNull(error.data.error.message)){
errorInfo = error.data.error.message;
}else if (jsutil.checkNull(error.message)){
errorInfo = error.message;
}else {
errorInfo = error;
}
// 返回 response 里的错误信息
return Promise.reject(errorInfo);
}
);
},
init_router: (router,axios) => {
router.beforeEach((to, from, next) => {
// NProgress.start();
// if (to.path == '/login') {
// sessionStorage.removeItem('user');
// sessionStorage.removeItem('menu');
// sessionStorage.removeItem('token');
// }else{
// let user = JSON.parse(sessionStorage.getItem('user'));
// if(sessionStorage.getItem('token')){
// axios.defaults.headers.common['Authorization'] = sessionStorage.getItem('token');
// }
//
// if (!jsutil.checkNull(user) && to.path != '/login' && !sessionStorage.getItem('menu') && !sessionStorage.getItem('token')) {
// next({ path: '/login' })
// }
// }
next()
});
}
}
export default axois_init;