fix:切换页面 停止正在请求而的接口
This commit is contained in:
@@ -1,6 +1,11 @@
|
|||||||
import axios from 'axios'
|
import axios from 'axios'
|
||||||
|
const CancelToken = axios.CancelToken // 申明CancelToken
|
||||||
|
|
||||||
|
export const requestsArr = []
|
||||||
axios.interceptors.request.use(config => {
|
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')
|
const token = localStorage.getItem('nz-token')
|
||||||
if (token) {
|
if (token) {
|
||||||
config.headers.Authorization = token // 请求头token
|
config.headers.Authorization = token // 请求头token
|
||||||
|
|||||||
@@ -1,18 +1,17 @@
|
|||||||
import router from './router'
|
import router from './router'
|
||||||
import store from './store'
|
import store from './store'
|
||||||
import { get, post } from './http'
|
import { get, post, requestsArr } from './http'
|
||||||
import ElementUI from 'element-ui'
|
import ElementUI from 'element-ui'
|
||||||
import Vue from 'vue'
|
import Vue from 'vue'
|
||||||
import i18n, { loadI18n } from './components/common/i18n'
|
import i18n, { loadI18n } from './components/common/i18n'
|
||||||
import VueResource from 'vue-resource'
|
import VueResource from 'vue-resource'
|
||||||
import bus from '@/libs/bus'
|
import bus from '@/libs/bus'
|
||||||
|
|
||||||
Vue.use(VueResource)
|
Vue.use(VueResource)
|
||||||
|
|
||||||
const loginWhiteList = ['/setup', '/sys/license/upload', '/sys/license/state', '/sys/appearance'] // 免登陆白名单
|
const loginWhiteList = ['/setup', '/sys/license/upload', '/sys/license/state', '/sys/appearance'] // 免登陆白名单
|
||||||
const permissionWhiteList = ['/profile', '/menu', ...loginWhiteList] // 权限白名单
|
const permissionWhiteList = ['/profile', '/menu', ...loginWhiteList] // 权限白名单
|
||||||
|
|
||||||
router.beforeEach((to, from, next) => {
|
router.beforeEach((to, from, next) => {
|
||||||
|
requestsArr.forEach(xhr => xhr.cancel())
|
||||||
const configUrl = 'static/config.json?Timestamp=' + new Date().getTime()
|
const configUrl = 'static/config.json?Timestamp=' + new Date().getTime()
|
||||||
if (to.path === '/login') { // 拦截登录页面,现货区外观设置 再系统初始化检查
|
if (to.path === '/login') { // 拦截登录页面,现货区外观设置 再系统初始化检查
|
||||||
Vue.http.get(configUrl).then(config => {
|
Vue.http.get(configUrl).then(config => {
|
||||||
|
|||||||
Reference in New Issue
Block a user