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 => {