Browse Source

对接口返回401做了封装处理

YaolongHan 4 years ago
parent
commit
901f26e5e4
5 changed files with 51 additions and 37 deletions
  1. 9 10
      public/index.html
  2. 39 17
      src/api/httputils.js
  3. 1 2
      src/router/index.js
  4. 2 8
      src/store/index.js
  5. BIN
      wandaBmGuide.zip

+ 9 - 10
public/index.html

@@ -106,14 +106,6 @@
         window.onresize = function () {
             remHandle();
         }
-        window.load = function () {
-            // 指定条问题
-            var wd_fm_info = {
-                profile: {
-                    username: encodeURIComponent('张三')
-                }
-            }
-        }
     </script>
 </head>
 
@@ -124,9 +116,16 @@
             it to continue.</strong>
     </noscript>
     <!-- 置顶条问题 -->
-    <!-- <div style="height:26px;background-color:#efefef;padding:0 10px" id="wd"></div> -->
+    <div style="height:26px;background-color:#efefef;padding:0 10px" id="wd-fm"></div>
     <div id="app"></div>
-
+    <script>
+        // 指定条问题
+        var wd_fm_info = {
+            profile: {
+                username: encodeURIComponent('张三')
+            }
+        }
+    </script>
 </body>
 
 </html>

+ 39 - 17
src/api/httputils.js

@@ -1,6 +1,9 @@
 import axios from 'axios'
 import store from '@/store'
-import { MessageBox } from 'element-ui'
+import router from '@/router'
+import {
+    MessageBox
+} from 'element-ui'
 
 var CancelToken = axios.CancelToken
 var cancel
@@ -20,9 +23,14 @@ const axiosservice = axios.create({
 axiosservice.interceptors.request.use(
     (config) => {
         config.withCredentials = true // 允许携带token ,这个是解决跨域产生的相关问题
+        let isPreview = null
         let token = store.getters['ssoToken']
-        console.log()
-        let isPreview = store.getters['isPreview']
+        if(store.getters['isPreview'] == "null" || store.getters['isPreview'] == "" ){
+           isPreview = 'false'
+        }else{
+           isPreview = store.getters['isPreview']
+        }
+
         // if (config.url.indexOf('mapapp') < 0) {
         //     config.headers = {
         //         'sso-token': token,
@@ -44,26 +52,36 @@ axiosservice.interceptors.request.use(
 )
 
 axiosservice.interceptors.response.use(
-    function(res) {
+    function (res) {
         //在这里对返回的数据进行处理
-        let resp = res.data
+        let resp = res.data;
         if (resp.result === 'unauthc') {
             store.commit('logined', false)
             MessageBox.confirm('未登陆或登陆信息已失效, 是否重新登陆?', '提示', {
-                confirmButtonText: '确定',
-                cancelButtonText: '取消',
-                type: 'error',
-            })
+                    confirmButtonText: '确定',
+                    cancelButtonText: '取消',
+                    type: 'error',
+                })
                 .then((resp) => {
                     window.location.reload()
                 })
-                .catch((error) => {})
-        } else if (resp.result == 'unauthorization') {
-            MessageBox.alert('无权操作', { title: '警告', type: 'error' })
+                .catch((error) => {
+                    console.log('asdfasdfsad')
+                })
+        } else if (resp.error == 'Unauthorized') {
+            MessageBox.alert('无权操作', {
+                title: '警告',
+                type: 'error'
+            })
         }
         return res
     },
-    function(err) {
+    function (err) {
+        if(err.response.status == 401){
+            router.push({
+                path: '/404',
+            })
+        }
         return Promise.reject(err)
     }
 )
@@ -154,7 +172,9 @@ export default {
     download(url, requestData) {
         // 响应类型:arraybuffer, blob
         axiosservice
-            .post(url, requestData, { responseType: 'blob' })
+            .post(url, requestData, {
+                responseType: 'blob'
+            })
             .then((resp) => {
                 let headers = resp.headers
                 let contentType = headers['content-type']
@@ -163,7 +183,9 @@ export default {
                     return false
                 } else {
                     //console.log("下载文件:", resp)
-                    const blob = new Blob([resp.data], { type: contentType })
+                    const blob = new Blob([resp.data], {
+                        type: contentType
+                    })
                     const contentDisposition = resp.headers['content-disposition']
                     let fileName = 'unknown'
                     if (contentDisposition) {
@@ -172,7 +194,7 @@ export default {
                     downFile(blob, fileName)
                 }
             })
-            .catch(function(error) {})
+            .catch(function (error) {})
     },
     axios: axiosservice,
-}
+}

+ 1 - 2
src/router/index.js

@@ -106,7 +106,6 @@ router.beforeEach(async (to, from, next) => {
             sessionStorage.setItem("SSOTOKEN", to.query.token)
             token = to.query.token
         } else {
-            // to.query.token ? to.query.token : store.getters['ssoToken'] ? store.getters['ssoToken'] : __token
             if (store.getters["ssoToken"]) {
                 token = store.getters["ssoToken"]
             } else if (sessionStorage.getItem("SSOTOKEN")) {
@@ -186,7 +185,7 @@ router.afterEach((to) => {
             console.log("error", res)
         })
 })
-
+// 重定向获取token
 function redirectGetToken (to) {
     let lastRoute = {
         path: to.path,

+ 2 - 8
src/store/index.js

@@ -15,8 +15,8 @@ Vue.use(Vuex)
 export default new Vuex.Store({
     state: {
         // ssoToken: 'admin:chuyushu',
-        // ssoToken: '',
-        ssoToken: null,
+        ssoToken: '123123',
+        // ssoToken: null,
         plazaName: '',
         isPreview: false,
         lastRoute: '',
@@ -207,12 +207,6 @@ export default new Vuex.Store({
                         }
                         // commit('SETISREQUESTtAUTH', false)
                         // commit('SETISREQUESTtAUTH', false)
-                    } else {
-                        console.log('getuserfo error',res)
-                        router.push({
-                            path: '/404',
-                        })
-                        commit('SETISREQUESTtAUTH', res)
                     }
                 })
                 .catch((err) => {

BIN
wandaBmGuide.zip