项目中遇到一个问题,后端会验证前端所有的请求,当登录已超时会返回相关的状态码,前端拿到登录超时的状态码时要弹出一个
MessageBox
,现在遇到的情况是,一个页面加载时会发两个请求,当用户已登录超时,会弹出两个MessageBox
,关闭一个之后会跳到登录页,到登录页之后还会看到一个MessageBox
,查阅过相关文档,都没找到手动关闭的方法;我是这样调用的:
Get(url, params, callback) {
axios.get(url, {
params
}).then(res => {
if (res.data.ret === 0) {
callback(res);
} else if (res.data.ret === 7) { //登录超时
MessageBox({
title: '系统提示',
message: res.data.msg,
confirmButtonText: '确定',
closeOnPressEscape: false,
showCancelButton: false
}).then(() => {
router.push('login');
}).catch(() => {
router.push('login');
});
} else {
Message({
message: res.data.msg,
type: 'error',
duration: 5 * 1000
});
}
}).catch(err => {
Message({
message: err.message,
type: 'error',
duration: 5 * 1000
});
});
}