axios.js
1.64 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
import axios from 'axios';
import { Message, MessageBox } from 'element-ui';
axios.defaults.baseURL = process.env.BASE_API
const service = axios.create({
withCredentials: false,
timeout: 60000,
headers: {
'Content-Type': 'application/json',
}
})
service.interceptors.request.use(
config => {
return config
},
error => {
// Do something with request error
Promise.reject(error)
}
)
// response interceptor
service.interceptors.response.use(
response => {
const res = response.data;
if (res.code == 200) {
return res
}
else if (res.code == '50014') {
//登录超时或被登出,弹确认框,用户确认后,跳转到登录页面
MessageBox({
message: "当前登录已失效或异地登录,请重新登录",
type: 'error',
duration: 3 * 1000,
}).then(() => {
sessionStorage.clear();
localStorage.clear();
window.location.href = "/";
}).catch(err => {
})
} else if (res.code == "3100" || res.code == "3101") {
return res;
}
else {
Message({
message: res.repMsg || res.message,
type: 'error',
duration: 3 * 1000
})
return res;
}
},
error => {
var errorStatus = error.response.code;
var errorData = error.response.data;
var messageTxt = "";
if (errorStatus != 200) {
messageTxt = "服务器内部错误,请联系管理员";
} else {
messageTxt = '失败原因:' + errorData.code + '--' + errorData.repMsg;
}
Message({
message: messageTxt,
type: 'error',
duration: 5 * 1000
})
}
)
export default service