董国庆
2025-05-08 fdf083258ffc85080a43fccea3205e22d5e71088
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
import axios from 'axios'
import apiConfig from './baseurl'
 
import {
  Message
} from 'element-ui'
 
 
const service = axios.create({
  baseURL: apiConfig.baseURL,
  withCredentials: false, // 当跨域请求时发送cookie
  timeout: 30000, // request timeout
})
 
// 请求拦截
service.interceptors.request.use(
  config => {
    config['headers']['Authorization'] = `${sessionStorage.getItem('token')}`
    if (config.method == 'get') {
      if (!config.params) config.params = {};
      config.params = {
        ...config.params,
      }
    }
    if (config.method == 'post') {
      if (!config.data) config.data = {};
      config.data = {
        ...config.data,
      }
    }
    return config
  },
  error => {
    return Promise.reject(error)
  }
)
 
// 响应拦截
service.interceptors.response.use(
  response => {
    if (!response) {
      return
    }
    const res = response;
    if (res.data.code == 200) {
      if (!res.data.data) {
        return Promise.resolve({...res.data})
      }
      return Promise.resolve(res.data.data)
    } else {
      if (res.data.code == 103 || res.data.code == 401) {
        Message({
          message: res.data.msg || '登录已过期,请重新登录',
          type: 'warning',
          duration: 2000
        })
        sessionStorage.clear();
        window.location.replace('/');
        return Promise.reject(res.data.data)
      }
      Message({
        message: res.data.msg || '服务器错误',
        type: 'error',
        duration: 2000
      })
      return Promise.reject(res.data.data)
    }
  },
  error => {
    return Promise.reject(error.message)
  }
)
export default service