【axios拦截】断网后发送请求, 提示网络链接错误

2,218 阅读1分钟

前言

半年前端的作者

今天测试提出了一个需求, 如题。
产生原因:在网络断开的情况下没有message存在,这时错误提示弹窗就是空内容,导致错误原因提示不够明确。

解决方式

方法1给每个message.error(err.message || '未知错误') 目的是让message为空时可以有备选项

缺点 代码中太多需要添加的位置,很容易出错,添加后不一定每个位置都能测试到

方法2 在axios封装的request.js中添加拦截,具体代码如下:

instance.interceptors.response.use(
    (response) => {
      // 请求成功
      return response.data;
    },
    (r) => {
      let resultError = { response: r };
      // 此处省略其他判断
      
      // 没有网络时 message的内容为"Network Error"
      if(r.message == "Network Error"){
        resultError.message = '网络错误';
      }
      resultError.type = 'RequestError';
      return Promise.reject(resultError);
    },
  );

总结

经过测试能够在断网后提示网络错误,如果能够通过测试那关,再来反馈。 如果有更好的方式欢迎在评论区指出。