简单的配置就好了
第一步:axios里面配置 全局 promiseArr
window._axiosPromiseArr = []
// http request 拦截器
axios.interceptors.request.use(
config => {
config.headers = {
'Content-Type': 'application/json;charset=UTF-8'
};
// 每个请求都会 加入
config.cancelToken = new axios.CancelToken(cancel => {
// 这个我习惯放再window 里面,也有配置再vuex里面的 感觉太麻烦了
window._axiosPromiseArr.push({ cancel })
})
return config
},
第二步: mian.js 里面 配置全局钩子
router.beforeEach((to, from, next) => {
window._axiosPromiseArr.forEach((el, index) => {
el.cancel() // 路由跳转之前,中止请求
// 重置 window._axiosPromiseArr
delete window._axiosPromiseArr[index]
})
next();
})
简单的配置