seatonwan9
2025-08-19 ade0cb41b9850438e78e06bcdf2d6590c41d6bc1
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
/*
 * @Description:
 * @Version: 2.0
 * @Autor: yuxinqiang
 * @Date: 2022-09-05 08:58:39
 * @LastEditors: wuyun
 * @LastEditTime: 2022-09-26 16:43:37
 */
import axios from 'axios';
 
/**
 * 请求失败后的错误统一处理
 */
export const errorStatusHandle = (error: any) => {
  if (axios.isCancel(error)) return console.error(error.message);
  let message = '';
  if (error && error.response) {
    switch (error.response.status) {
      case 302:
        message = '接口重定向了!';
        break;
      case 400:
        message = '参数不正确!';
        break;
      case 401:
        message = '您未登录,或者登录已经超时,请先登录!';
        break;
      case 403:
        message = '您没有权限操作!';
        break;
      case 404:
        message = `请求地址出错: ${error.response.config.url}`;
        break; // 在正确域名下
      case 408:
        message = '请求超时!';
        break;
      case 409:
        message = '系统已存在相同数据!';
        break;
      case 500:
        message = '服务器内部错误!';
        break;
      case 501:
        message = '服务未实现!';
        break;
      case 502:
        message = '网关错误!';
        break;
      case 503:
        message = '服务不可用!';
        break;
      case 504:
        message = '服务暂时无法访问,请稍后再试!';
        break;
      case 505:
        message = 'HTTP版本不受支持!';
        break;
      default:
        message = '操作失败,请重试!';
        break;
    }
    if (error.message.includes('timeout')) message = '网络请求超时!';
    if (error.message.includes('Network')) message = window.navigator.onLine ? '服务端异常!' : '您断网了!';
    ElMessage.error(message);
  }
};