Blame view

src/api/axios.js 1.88 KB
c1b532ad   梁保满   权限配置,路由基础设置
1
2
3
4
  import axios from "axios"
  import Cookies from "js-cookie"
  import NProgress from "nprogress"
  import { Message } from "element-ui"
65f592b6   梁保满   答题卡列表页
5
  import config from "../config/index"; // 路径配置
c1b532ad   梁保满   权限配置,路由基础设置
6
  // axios默认配置
65f592b6   梁保满   答题卡列表页
7
8
  axios.defaults.timeout = 1000000000 // 超时时间
  axios.defaults.baseURL = config.baseURL
c1b532ad   梁保满   权限配置,路由基础设置
9
10
11
12
13
  
  // http request 拦截器
  axios.interceptors.request.use(config => {
    NProgress.start()
    config.headers["Content-Type"] = "application/json;charset=UTF-8"
65f592b6   梁保满   答题卡列表页
14
15
16
17
18
19
20
  
    const source = axios.CancelToken.source();
    store.commit('setTokenSources', [source.token, source.cancel])
    config.cancelToken = source.token;
    // if (Cookies.get("access_token")) {
    //   config.headers.Authorization = "Bearer" + Cookies.get("access_token")
    // }
c1b532ad   梁保满   权限配置,路由基础设置
21
22
    return config
  },
65f592b6   梁保满   答题卡列表页
23
24
25
    error => {
      return Promise.reject(error.response)
    })
c1b532ad   梁保满   权限配置,路由基础设置
26
27
28
29
30
  
  // http response 拦截器
  axios.interceptors.response.use(
    response => {
      NProgress.done()
65f592b6   梁保满   答题卡列表页
31
32
33
      if (respones.config.cancelToken) {
        store.commit('delTokenSources', respones.config.cancelToken)
      }
c1b532ad   梁保满   权限配置,路由基础设置
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
      if (response.data.code === 11000) {
        Cookies.set("access_token", response.data.message, { expires: 1 / 12 })
        return Promise.resolve()
      } else if (response.data.code === 10000) { // 约定报错信息
        Message({
          message: response.data.message,
          type: "warning"
        })
        return Promise.reject(response)
      } else {
        return Promise.resolve(response)
      }
    },
    error => {
      if (error.response.status === 404) {
        Message({
          message: "请求地址出错",
          type: "warning"
        })
      } else if (error.response.status === 401) {
        Message({
          message: error.response.data.message,
          type: "warning"
        })
        Cookies.remove("access_token")
        setTimeout(() => {
          location.reload()
        }, 3000)
      }
      return Promise.reject(error.response) // 返回接口返回的错误信息
    })
  export default axios