Browse Source

fix axios error notice

Michael Wang 6 years ago
parent
commit
29560b19cd
2 changed files with 39 additions and 62 deletions
  1. 20 33
      src/plugins/axiosApp.js
  2. 19 29
      src/plugins/axiosCommonService.js

+ 20 - 33
src/plugins/axiosApp.js

@@ -1,8 +1,8 @@
 import Vue from "vue";
+import { Notice } from "iview";
 import axios from "axios";
 import { loadProgressBar } from "./axiosProgress";
 import cachingGet from "./axiosCache";
-import router from "../router";
 import { getKeyToken, removeKeyToken } from "../auth/auth";
 
 // Full config:  https://github.com/axios/axios#request-config
@@ -29,21 +29,17 @@ const _axiosApp = axios.create(config);
 
 _axiosApp.interceptors.request.use(
   function(config) {
-    if (config.url.includes("/login") === false) {
-      let [wk_token, wk_key] = getKeyToken();
-      if (wk_token) {
-        config.headers.common["token"] = wk_token;
-        config.headers.common["key"] = wk_key;
-      }
+    const [wk_token, wk_key] = getKeyToken();
+    if (wk_token) {
+      config.headers.common["token"] = wk_token;
+      config.headers.common["key"] = wk_key;
     }
     return config;
   },
   function(error) {
     // Do something with request error
-    Vue.prototype.$notify({
-      showClose: true,
-      message: error,
-      type: "error"
+    Notice.error({
+      title: error
     });
     return Promise.reject(error);
   }
@@ -58,10 +54,8 @@ _axiosApp.interceptors.response.use(
     if (!error.response) {
       // "Network Error" 网络不通,直接返回
 
-      Vue.prototype.$notify({
-        showClose: true,
-        message: "网络连接异常,请检查网络设置。",
-        type: "error"
+      Notice.error({
+        title: "网络连接异常,请检查网络设置。"
       });
       return Promise.reject(error);
     }
@@ -70,19 +64,14 @@ _axiosApp.interceptors.response.use(
 
     // 登录失效 跳转登录页面
     if (status == 403 || status == 401) {
-      Vue.prototype.$alert("登录失效,请重新登录!", "提示", {
-        confirmButtonText: "确定",
-        callback: () => {
-          removeKeyToken();
-          router.push("/login/");
-        }
+      Notice.warning({
+        title: "登录失效,请重新登录!"
       });
+      removeKeyToken();
       return Promise.reject(error);
     } else if (status == 405) {
-      Vue.prototype.$notify({
-        showClose: true,
-        message: "没有权限!",
-        type: "error"
+      Notice.warning({
+        title: "没有权限!"
       });
       return Promise.reject(error);
     }
@@ -90,16 +79,14 @@ _axiosApp.interceptors.response.use(
     if (status != 200) {
       const data = error.response.data;
       if (data && data.desc) {
-        Vue.prototype.$notify({
-          showClose: true,
-          message: data.desc,
-          type: "error"
+        Notice.error({
+          title: "服务器返回",
+          desc: data.desc
         });
       } else {
-        Vue.prototype.$notify({
-          showClose: true,
-          message: "未定义异常: " + JSON.stringify(data, 2),
-          type: "error"
+        Notice.error({
+          title: "未定义异常: ",
+          desc: JSON.stringify(data, 2)
         });
       }
       return Promise.reject(error);

+ 19 - 29
src/plugins/axiosCommonService.js

@@ -1,14 +1,15 @@
 import Vue from "vue";
+import { Notice } from "iview";
 import axios from "axios";
 import { loadProgressBar } from "./axiosProgress";
 import cachingGet from "./axiosCache";
-import router from "../router";
 import { getKeyToken, removeKeyToken } from "../auth/auth";
 
 // Full config:  https://github.com/axios/axios#request-config
 // axios.defaults.baseURL = process.env.baseURL || process.env.apiUrl || '';
 // axios.defaults.headers.common['Authorization'] = AUTH_TOKEN;
 // axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded';
+axios.defaults.headers.post["Access-Control-Allow-Origin"] = "*";
 
 let config = {
   // baseURL: process.env.baseURL || process.env.apiUrl || ""
@@ -29,8 +30,8 @@ const _axiosCommonService = axios.create(config);
 
 _axiosCommonService.interceptors.request.use(
   function(config) {
-    if (config.url.includes("/login") === false) {
-      let [wk_token, wk_key] = getKeyToken();
+    if (config.url.endsWith("Login") === false) {
+      const [wk_token, wk_key] = getKeyToken();
       if (wk_token) {
         config.headers.common["token"] = wk_token;
         config.headers.common["key"] = wk_key;
@@ -40,10 +41,8 @@ _axiosCommonService.interceptors.request.use(
   },
   function(error) {
     // Do something with request error
-    Vue.prototype.$notify({
-      showClose: true,
-      message: error,
-      type: "error"
+    Notice.error({
+      title: error
     });
     return Promise.reject(error);
   }
@@ -58,10 +57,8 @@ _axiosCommonService.interceptors.response.use(
     if (!error.response) {
       // "Network Error" 网络不通,直接返回
 
-      Vue.prototype.$notify({
-        showClose: true,
-        message: "网络连接异常,请检查网络设置。",
-        type: "error"
+      Notice.error({
+        title: "网络连接异常,请检查网络设置。"
       });
       return Promise.reject(error);
     }
@@ -70,19 +67,14 @@ _axiosCommonService.interceptors.response.use(
 
     // 登录失效 跳转登录页面
     if (status == 403 || status == 401) {
-      Vue.prototype.$alert("登录失效,请重新登录!", "提示", {
-        confirmButtonText: "确定",
-        callback: () => {
-          removeKeyToken();
-          router.push("/login/");
-        }
+      Notice.warning({
+        title: "登录失效,请重新登录!"
       });
+      removeKeyToken();
       return Promise.reject(error);
     } else if (status == 405) {
-      Vue.prototype.$notify({
-        showClose: true,
-        message: "没有权限!",
-        type: "error"
+      Notice.warning({
+        title: "没有权限!"
       });
       return Promise.reject(error);
     }
@@ -90,16 +82,14 @@ _axiosCommonService.interceptors.response.use(
     if (status != 200) {
       const data = error.response.data;
       if (data && data.desc) {
-        Vue.prototype.$notify({
-          showClose: true,
-          message: data.desc,
-          type: "error"
+        Notice.error({
+          title: "服务器返回",
+          desc: data.desc
         });
       } else {
-        Vue.prototype.$notify({
-          showClose: true,
-          message: "未定义异常: " + JSON.stringify(data, 2),
-          type: "error"
+        Notice.error({
+          title: "未定义异常: ",
+          desc: JSON.stringify(data, 2)
         });
       }
       return Promise.reject(error);