vue项目中 axios请求拦截器与取消pending请求功能 - 年少、 - 博客园
由于文档内容过多,为了避免影响到大家的阅读体验,在此只以截图展示部分内容开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】为了避免影响到大家的阅读体验,在此只以截图展示部分内容开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】
//如果已经登录,则正常进入
if(!!token){
cancelPending();
next();
}else{
next({‘name’: ‘login’, ‘query’: {‘redirect’: to.fullPath}});
};
}else if(to.name == ‘login’){ //如果是登录页,则验证如果当前是登录状态自动跳转至系统主页,否则正常进入登录页
let token = localStorage.getItem(‘token’);
//如果已经登录,则重定向至系统首页
if(!!token){
router.push({‘name’: ‘SystemWelcome’});
}else{
next();
};
}else{ //其他页面正常进入
next();
};
});
//axios 请求拦截器
axios.interceptors.request.use(config => {
let token = localStorage.getItem(‘token’);
if (!!token) { // 判断是否存在token,如果存在的话,则每个http header都加上token
config.headers.Authorization = token ${token}
;
};
cancelPending(config);
config.cancelToken = new cancelToken(© => {
pending.push({‘u’: config.url, ‘f’: c});
});
return config;
}, err => {
return Promise.reject(err);
});
//响应拦截器
axios.interceptors.response.use(response => {
cancelPending(response.config);
return response;
}, error => {
if (error.response) {
switch (error.response.status) {
case 401:
// 返回 401 清除token信息并跳转到登录页面
localStorage.removeItem(‘token’);
小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Web前端开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注:前端)
最后
由于文档内容过多,为了避免影响到大家的阅读体验,在此只以截图展示部分内容
为了避免影响到大家的阅读体验,在此只以截图展示部分内容
更多推荐
所有评论(0)