无人机管理后台前端(已迁走)
shuishen
2025-04-15 df42fa7e97c4a93caa17b2aed5aecdc768d8bbd7
src/axios.js
@@ -37,6 +37,7 @@
// 全局未授权错误提示状态,只提示一次
let isErrorShown = false;
let _retry = false;
// 超时时间设置为10分钟,部分接口上传比较慢,如固件上传
axios.defaults.timeout = 600000;
//返回其他状态码
@@ -113,15 +114,15 @@
      NProgress.done();
      const status = res.data.error_code || res.data.code || res.status;
      const statusWhiteList = website.statusWhiteList || [];
      const message = res.data.msg || res.data.error_description || '系统错误';
      const message = res.data.msg || res.data.error_description || res.data.message ||'系统错误';
      const config = res.config;
      const cryptoData = config.cryptoData === true;
      //如果在白名单里则自行catch逻辑处理
      if (statusWhiteList.includes(status)) return Promise.reject(res);
      // 如果是401并且没有重试过,尝试刷新token
      if (status === 401 && !config._retry) {
      if (status === 401 && !_retry) {
         // 标记此请求已尝试刷新token
         config._retry = true;
         _retry = true;
         // 调用RefreshToken action来刷新token
         return store
            .dispatch('RefreshToken')
@@ -159,7 +160,7 @@
            });
      }
      // 如果是401并且已经重试过,直接跳转到登录页面
      if (status === 401 && config._retry) {
      if (status === 401 && _retry) {
         // 首次报错时提示
         if (!isErrorShown) {
            isErrorShown = true;
@@ -190,7 +191,7 @@
         return Promise.reject(new Error(message));
      }
      // 如果请求为非200默认统一处理
      if (status !== 200) {
      if (status !== 200 && status !== 0) {
         if (!isErrorShown) {
            ElMessage({
               message: message,
@@ -211,4 +212,4 @@
   }
);
export default axios;
export default axios;