核工业西南物理研究院知识库AI客户端
xiangpei
2025-04-18 7789aeaad9032763805da324d743bc664bddd2e8
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
import axios from "axios";
import router from "../router";
import { Message } from 'element-ui';
 
const instance = axios.create({
    baseURL: '/api/',
    timeout: 500000,
    // 不携带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) {
    console.log("正常响应结果",response)
    // 处理自定义状态码
    if(response.data.code === 200) {
        return response;
    } else if (response.data.code === 500) {
      Message.error(response.statusText);
      return Promise.reject(response.statusText);
    } else {
        return response;
    }
  }, function (error) {
    console.log("错误响应结果",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 = "权限不足";
    }
    if(error.response.status === 404) {
        error.message = "请求地址不存在";
    }
    Message.error(error.message);
    return Promise.reject(error);
  });
 
export default instance;