浏览代码

网络连接异常:区分断网和连接超时

Michael Wang 5 年之前
父节点
当前提交
6a1d0fa345
共有 1 个文件被更改,包括 11 次插入1 次删除
  1. 11 1
      src/utils/axios.js

+ 11 - 1
src/utils/axios.js

@@ -60,6 +60,7 @@ qmInstance.interceptors.response.use(
   error => {
     if (!error.response) {
       // "Network Error" 网络不通,直接返回
+      // "timeout of 30000ms exceeded" 连接超时,可能是客户端原因,也可能是服务器原因
       if (
         window.___lastNetworkError === undefined ||
         window.___lastNetworkError < Date.now() - 15 * 1000
@@ -72,10 +73,19 @@ qmInstance.interceptors.response.use(
         window.___lastNetworkError = Date.now();
       }
 
+      // TODO: 由于chrome58不支持navigator.connection.downlink , 所以无法判断客户端网络状况
+
+      let detailInfo = " ||| ";
+      try {
+        detailInfo += error.config.url + " ||| " + error.message;
+      } catch (error) {
+        console.log("detailInfo error");
+      }
+
       window._hmt.push([
         "_trackEvent",
         location.pathname.replace(/\d+/g, ""),
-        "网络连接异常,请检查网络设置。",
+        "网络连接异常,请检查网络设置。" + detailInfo,
       ]);
 
       return Promise.reject(error);