vue 拦截器
// 路由导航守卫
router.beforeEach((to,from,next)=>{
// to 是从哪里来
// from 去哪里
// next next() 代表放行 next('/login') 强制跳回login页面
// 1 判断当前路由是不是/login 如果是直接放行
if(to.path=='/login') return next();
// 2 判断当前路由不是/login,那么就获取他的token
const token = sessionStorage.getItem('token');
// 3 如果token 不存在,强制跳回 /login
if(!token) return next('/login');
// 4 如果token 存在。则继续放行
next();
})
axios.interceptors.request.use(function (config) {
let token = window.localStorage.getItem("token");
if (token) {
config.headers.token = token; //将token放到请求头发送给服务器
}
return config; // 最终需要返回config
}, function (error) {
return Promise.reject(error);
});
axios.interceptors.response.use(
response => {
if (response.data.code == 9000) {
alert(response.data.msg);
router.push({
path: "/login"
});
}
return response;
},
error => {
// 这里对 error 预期结果是包含具体错误信息和状态码
if (error && error.response && error.response.status) {
switch (error.response.status) {
case 500:
// do something...
break;
case 404:
// do something...
break;
default:
// do something...
break;
}
}
}
);
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端