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
import axios from "axios"
import { Loading } from "element-ui";
import { Message } from 'element-ui';
 
// 全局loading
let loading;
// 全局配置
const axiosAdmin = axios.create({
  headers: { 'Content-Type': 'application/json' },
})
// 请求拦截
axiosAdmin.interceptors.request.use(
  (config) => {
    if (localStorage.token) {
      config.headers.token = localStorage.token;
    }
    showLoading();
    return config;
  },
  (err) => {
    hideLoading();
    return Promise.reject(err);
  }
)
// 响应拦截
axiosAdmin.interceptors.response.use(
  (res) => {
    hideLoading();
    if (res.status === 200) {
      if (res.data.code == '0000') {
        loading = Loading.service({
          lock: true,
          text: "鉴权认证失败 请求错误",
          spinner: "el-icon-loading",
          background: "rgba(0, 0, 0, 0.7)",
        });
        setTimeout(() => {
          localStorage.clear()
          location.reload()
        }, 1000);
      } else {
        return res.data;
      }
    } else {
      return res;
    }
  },
  (err) => {
    hideLoading();
    if (err && err.response) {
      switch (err.response.status) {
        case 400: err.message = '请求错误(400)'; break;
        case 401: err.message = '请求错误(401)'; break;
        case 403: err.message = '拒绝访问(403)'; break;
        case 404: err.message = '请求出错(404)'; break;
        case 408: err.message = '请求超时(408)'; break;
        case 500: err.message = '服务器错误(500)'; break;
        case 501: err.message = '服务未实现(501)'; break;
        case 502: err.message = '网络错误(502)'; break;
        case 503: err.message = '服务不可用(503)'; break;
        case 504: err.message = '网络超时(504)'; break;
        case 505: err.message = 'HTTP版本不受支持(505)'; break;
        default: err.message = `连接出错(${err.response.status})!`;
      }
    } else {
      err.message = '连接服务器失败!'
    }
    Message.error(err.message);
    // if (err.response.status == 401) {
    //   loading = Loading.service({
    //     lock: true,
    //     text: "鉴权认证失败 请求错误(401)",
    //     spinner: "el-icon-loading",
    //     background: "rgba(0, 0, 0, 0.7)",
    //   });
    //   setTimeout(() => {
    //     localStorage.clear()
    //     location.reload()
    //   }, 1000);
    // }
    return Promise.reject(err); // 详细错误信息 err.response
  }
)
/* 显示loading */
function showLoading() {
  loading = Loading.service({
    lock: true,
    text: "请稍等",
    spinner: "el-icon-loading",
    background: "rgba(0, 0, 0, 0.7)",
  });
}
/* 隐藏loading */
function hideLoading() {
  loading.close();
}
// 导出
export default axiosAdmin