From ed415bb65ce64233108696700afeff3a924e7e22 Mon Sep 17 00:00:00 2001 From: zhangyu Date: Wed, 9 Mar 2022 18:41:22 +0800 Subject: [PATCH] =?UTF-8?q?fix=EF=BC=9A=E5=88=87=E6=8D=A2=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2=20=E5=81=9C=E6=AD=A2=E6=AD=A3=E5=9C=A8=E8=AF=B7?= =?UTF-8?q?=E6=B1=82=E8=80=8C=E7=9A=84=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- nezha-fronted/src/http.js | 5 +++++ nezha-fronted/src/permission.js | 5 ++--- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/nezha-fronted/src/http.js b/nezha-fronted/src/http.js index b9bf40742..55321bb5e 100644 --- a/nezha-fronted/src/http.js +++ b/nezha-fronted/src/http.js @@ -1,6 +1,11 @@ import axios from 'axios' +const CancelToken = axios.CancelToken // 申明CancelToken +export const requestsArr = [] axios.interceptors.request.use(config => { + const source = CancelToken.source() // 申明CancelToken,也可new CancelToken.source()实例一个 + config.cancelToken = source.token // 讲实例对象的token赋予该请求 + requestsArr.push(source) // 将该实例添加到队列中 const token = localStorage.getItem('nz-token') if (token) { config.headers.Authorization = token // 请求头token diff --git a/nezha-fronted/src/permission.js b/nezha-fronted/src/permission.js index 4337f9d09..1972d3f0e 100644 --- a/nezha-fronted/src/permission.js +++ b/nezha-fronted/src/permission.js @@ -1,18 +1,17 @@ import router from './router' import store from './store' -import { get, post } from './http' +import { get, post, requestsArr } from './http' import ElementUI from 'element-ui' import Vue from 'vue' import i18n, { loadI18n } from './components/common/i18n' import VueResource from 'vue-resource' import bus from '@/libs/bus' - Vue.use(VueResource) const loginWhiteList = ['/setup', '/sys/license/upload', '/sys/license/state', '/sys/appearance'] // 免登陆白名单 const permissionWhiteList = ['/profile', '/menu', ...loginWhiteList] // 权限白名单 - router.beforeEach((to, from, next) => { + requestsArr.forEach(xhr => xhr.cancel()) const configUrl = 'static/config.json?Timestamp=' + new Date().getTime() if (to.path === '/login') { // 拦截登录页面,现货区外观设置 再系统初始化检查 Vue.http.get(configUrl).then(config => {