1:约定好token失效或者错误的验证码。
// 在响应拦截器中 我们约定的是401表示token的问题
service.interceptors.response.use(
response => {
//公共方法......
//水无常势,方法不一,不多赘述
return response;
},
(error) => {
if (error.response.status === 401) {
ElMessage.error('登录信息已过期!请重新登录');
setTimeout(() => {
localStorage.clear();//清除本地存储
window.location.replace('#/login')// 导到登录页
}, 1000)
return Promise.reject(error)
}
)
//基本处理完成,但是有问题。比如一个页面有三四个接口调用,那么'登录信息已过期!请重新登录'这句话会弹三四次。
2:处理多次提示的问题
思路:定义一个变量, 然后加一道判断。符合条件进来之后改变变量,解决多次弹出问题
let isType = true;
service.interceptors.response.use(
response => {
return response;
},
(error) => {
if (error.response.status === 401) {
if (isType) {
isType = false;
ElMessage.error('登录信息已过期!请重新登录');
setTimeout(() => {
localStorage.clear();
isType = true;
window.location.replace('#/login')
}, 1000)
}
}
return Promise.reject(error)
}
)
// 问题迎刃而解。
写的不好,大家相互交流,相互进步