前端中axios提供的前置拦截器和后置拦截器(前后端分离项目结合使用 ---- 见上篇博文)

it2025-05-20  7

给每个axios请求都添加一个前置拦截器,发送请求时添加请求头,在第一次后台发给前台一个jsessionid后,前台永久保存在浏览器端,在第二次...第n次进行操作发送请求时,都把 这个jsessionid传给后台,就可以获取到已登录用户,进行操作 (有些功能是必须登录才能操作的.//1 使用axios前置拦截器,让所有的请求都携带token axios.interceptors.request.use(config=>{ //携带token let uToken = localStorage.getItem("token"); if(uToken){ //我就在请求头里面添加一个头信息叫做U-TOKEN ==》jsessionid(token) 后台通过token作为key值可以在redis中获得loginUser的信息 config.headers['U-TOKEN']=uToken; } return config; },error => { Promise.reject(error); }); 使用:在axios发送请求后,得到一个res对象,进行回调函数前的拦截器 //2 使用axios后置拦截器,处理没有登录请求 axios.interceptors.response.use(res=>{ let {success, result} = res.data; //用户没有登录 if(!success && result==="noUser"){ //跳转登录界面 location.href = "/login.html"; return; } //后台redis用户已经过期了 if(!success && result==="expireUser"){ //移除localStorage localStorage.removeItem("token"); localStorage.removeItem("loginUser"); //跳转登录界面 location.href = "/login.html"; return; } return res; },error => { Promise.reject(error); })
最新回复(0)