ui
xiangpei
2025-01-17 213acbd9ba90742c0d72bd17af140c6cffdb7a76
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
import axios from 'axios'
import router from '../router'
import { Message } from 'element-ui'
 
const instance = axios.create({
  baseURL: '/api/',
  timeout: 100000,
  // 不携带cookie
  withCredentials: false,
  headers: {
    'Content-Type': 'application/json'
  }
})
 
// 添加请求拦截器
instance.interceptors.request.use(function (config) {
  // 带上token
  if (sessionStorage.getItem('token') !== null) {
    config.headers.Authentication = sessionStorage.getItem('token')
  }
  return config
}, function (error) {
  Message.error('请求存在问题,请检查')
  return Promise.reject(error)
})
 
// 添加响应拦截器
instance.interceptors.response.use(function (response) {
  // 处理自定义状态码
  if (response.data.code === 200) {
    return response
    // 验证码错误放行,以便刷新验证码
  } else if (response.data.code === 1998) {
    return response
  } else {
    Message.error(response.data.msg)
    return Promise.reject(response.data.msg)
  }
}, function (error) {
  // 处理http状态码
  if (error.response.data) {
    error.message = error.response.data.msg
  }
  if (error.response.status === 401) {
    error.message = '登录已过期,请重新登录'
    // 删掉sessionStorage中过期token
    sessionStorage.clear()
    router.push('/')
  }
  if (error.response.status === 403) {
    error.message = '权限不足'
  }
  Message.error(error.message)
  return Promise.reject(error)
})
 
export default instance