在项目里测试同学提了一个缺陷,就是当前页面跳转到其他同源页面时,由于一些其他原因,被其他页面阻止访问,并触发了其他页面清空本地存储的操作,导致了我们的当前页面也被提回登录页面,需要重新登录的情况。。。。倒腾了一阵子,记录一下备忘
1、main.js页面添加以下代码
// 用来阻止不是自己负责的却是同域名的其他页面清空本地存储local的方法
window.changeLocalStatus = (flag) => { // 设置一个全局的阻止改变local的方法
window.preventChangeLocal = (e) => {
let localValue = localStorage.getItem('xxl_sso_sessionid')
// 如果sessionId被修改了 或者 local被清空了
if(localValue !== window.localStorageValue || localStorage.length === 0) {
localStorage.setItem('xxl_sso_sessionid',window.localStorageValue)
console.log('重新设置了xxl_sso_sessionid');
}
}
if (flag === 1) {
window.addEventListener('storage', window.preventChangeLocal)
console.log('本地存储被锁定了')
} else {
window.addEventListener('storage', window.preventChangeLocal)
console.l