今天接手了一个别人的项目,存在一些问题,老大让我更改修改一下!
前提条件:一个用户只能一处登录,后台返回值中没有code码,只有没有检测有木有登录的接口有返回code码!
问题:A人员登录了用户1,准备提交一个表单,正好这个时候另一个B人员再次登录用户1的账号,
此时A人员点击提交按钮,此时A人员界面弹窗两个
①用户未登录
②提交成功
解决方案:
在封装请求的js中在此添加一个前置条件,
每次发送请求时,都首先发送有木有登录的那个接口。
let a = await fetch(`${local}/task/loginCheck`,{
headers : {
Accept: 'application/json',
'Content-Type': 'application/json;charset=utf-8',
Authorization:token,
} ,
method : 'GET'
}).then(res=>{
return res.text()
})
if(a=='ok'){
return axios(url,newOptions,hashcode)
}else{
let data2 = JSON.parse(a);
if(data2.code == 102 && accumulation==0){
accumulation++
error(data2.msg);
router.push('/user/login');
return Promise.reject('错误');
}else{
accumulation++
error(data2.msg);
router.push('/user/login');
return Promise.reject('错误'); 这里很重要很重要
为了就是让请求页面中.then 方法失效
}
}