今天接手了一個別人的項目,存在一些問題,老大讓我更改修改一下!
前提條件:一個用戶只能一處登錄,後臺返回值中沒有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 方法失效
}
}