axios.js
2.38 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
import axios from "axios";
import store from "../store/index.js";
import router from "../router/index";
import { Message, Loading } from "element-ui";
let loading;
//内存中正在请求的数量
let loadingNum = 0;
function startLoading() {
if (loadingNum == 0) {
loading = Loading.service({
lock: true,
text: "拼命加载中...",
background: "rgba(255,255,255,0.5)"
});
}
//请求数量加1
loadingNum++;
}
function endLoading() {
//请求数量减1
loadingNum--;
if (loadingNum <= 0) {
loading.close();
}
}
// 创建 axios 实例
let service = axios.create({
// headers: {'Content-Type': 'application/json'},
timeout: 60000
});
// 添加请求拦截器
service.interceptors.request.use(
config => {
// startLoading();
let atoken = localStorage.getItem("atoken");
if (atoken) {
// 判断是否存在token,如果存在的话,则每个http header都加上token
config.headers.authorization = atoken;
} else {
router.push("/login");
// endLoading();
}
if (config.method == "get") {
config.params = {
_t: Date.parse(new Date()) / 1000,
...config.params
};
}
return config;
},
err => {
// 请求错误处理
return Promise.reject(err);
// config => {
// let token = localStorage.getItem("atoken");
// if (token) {
// // 判断是否存在token,如果存在的话,则每个http header都加上token
// config.headers.authorization = token;
// } else {
// router.push("/login");
// }
// if (config.method == "get") {
// config.params = {
// _t: Date.parse(new Date()) / 1000,
// ...config.params
// };
// }
// return config;
// },
// error => {
// // 请求错误处理
// return Promise.reject(error);
}
);
// 添加响应拦截器
service.interceptors.response.use(
response => {
// endLoading();
let { data } = response;
return data;
},
err => {
// endLoading();
if (err && err.response) {
Message.error({ message: err.response.data.enote });
} else {
Message.error({ message: "连接服务器失败!" });
}
return Promise.reject(err);
}
);
/**
* 创建统一封装过的 axios 实例
* @return {AxiosInstance}
*/
export default function() {
return service;
}