fuliqi
2024-01-24 29c1e7eb5ac16e90d8991a86c1c071bc312ec8d9
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
/*
 * @Author: 张嘉彬
 * @Date: 2021-09-28 14:42:15
 * @Description:
 */
import axios from 'axios'
// import { Message } from 'element-ui'
// import store from '../store'
// import {
//   codeHeaders,
//   encryptBody
// } from './sm'
// 创建axios实例
const service = axios.create({
  baseURL: process.env.VUE_APP_CURRENTMODE === 'development' ? '/api' : process.env.VUE_APP_API_BASE_URL,
  timeout: 15000,
  withCredentials: true
})
// request拦截器
service.interceptors.request.use((config) => {
  // 如果没有设置Content-Type,默认application/json
  if (!config.headers['Content-Type']) {
    config.headers['Content-Type'] = 'application/json'
  }
  // 方法做防重返和防篡改
  // if (process.env.VUE_APP_ENCRYPTION === '1') {
  //   config = codeHeaders(config)
  //   config = encryptBody(config)
  // }
  // 每次发送请求之前判断vuex中是否存在token
  // 如果存在,则统一在http请求的header都加上token
  const token = window.localStorage.getItem('access_token')
  console.log('请求头中的token:', token)
  if (token) {
    config.headers.Authorization = 'Bearer ' + token
  }
  return config
},
(error) => {
  Promise.reject(error)
})
 
// respone拦截器
service.interceptors.response.use(
  (response) => {
    return response.data
  },
  (error) => {
    // switch (error.response.data.status) {
    //   case '401':
    //     store.commit('logout')
    //     break
    //   case '403':
    //     // router.push({ name: '403' })
    //     break
    //   default: window.alert(error.response.data.error_description)
    // }
    return Promise.reject(error)
  }
)
export default service