浏览代码

enhance error message handle

Michael Wang 3 年之前
父节点
当前提交
35ca295314
共有 1 个文件被更改,包括 25 次插入7 次删除
  1. 25 7
      src/plugins/axiosApp.ts

+ 25 - 7
src/plugins/axiosApp.ts

@@ -128,16 +128,34 @@ _axiosApp.interceptors.response.use(
     }
 
     if (status != 200) {
-      const data = error.response.data;
-      if (data && data.desc) {
-        if (showErrorMessage) {
-          $message.error(data.desc + "");
+      const showDescOrNot = (descMaybe: { desc: string } | any) => {
+        if (descMaybe && descMaybe.desc) {
+          if (showErrorMessage) {
+            $message.error(descMaybe.desc + "");
+          }
+        } else {
+          if (showErrorMessage) {
+            $message.error("未定义异常: " + JSON.stringify(descMaybe, null, 2));
+          }
         }
+      };
+      const data = error.response.data;
+      if (data instanceof Blob) {
+        const fr = new FileReader();
+        fr.addEventListener(
+          "load",
+          () => {
+            let res = fr.result;
+            if (typeof res === "string") res = JSON.parse(res);
+            showDescOrNot(res);
+          },
+          false
+        );
+        fr.readAsText(data);
       } else {
-        if (showErrorMessage) {
-          $message.error("未定义异常: " + JSON.stringify(data, null, 2));
-        }
+        showDescOrNot(data);
       }
+
       return Promise.reject(error);
     }
   }