生产环境和测试环境路径不同,通过定义global_variable.js全局变量,赋予不同的环境不同路径,vue定义全局变量

token失效需要跳转到汇聚平台登录页面,而生产环境和测试环境路径不同,所以通过定义global_variable.js全局变量,赋予不同的环境不同路径

global_variable.js

let relogin_baseUrl=''
switch (window.location.hostname) {
    case '172.16.72.108'://线上环境 172.16.72.108
        relogin_baseUrl='http://172.16.75.200:81/#/login'
        break;
    default://测试环境 10.12.31.188
        relogin_baseUrl='http://www.xaadmin.com/#/login'
        break;
}
console.log(relogin_baseUrl)
export default{
    relogin_baseUrl
}

main.js

import global_variable from './global_variable.js'
vue.prototype.global_variable = global_variable

调用

window.location.href=this.global_variable.relogin_baseUrl

当token失效前往正确的登录页之后,点击浏览器回退页面会报错Cannot read property ‘relogin_baseUrl’ of undefined,解决办法是在router,error钩子里面去判断是这个message,就是重定向到登录页之后回退到上一页没找到对应的变量,我们就把此路径再次重定向到登录页(效果就是token失效或者退出登录前往的是鄙别的系统的登录页,而返回上一页就相当于没有登陆状态任然要继续前往别人的登录页面)

router.onError((error) => {
    const pattern = /Loading chunk (\d)+ failed/g;
    const isChunkLoadFailed = error.message.match(pattern);
    console.log(error)
    if (isChunkLoadFailed) {
        console.log(isChunkLoadFailed,'/Loading chunk (\d)+ failed/g','路由懒加载找不到对应的moudle')
        window.location.reload();
    }else{
        if(error.message === "Cannot read property 'relogin_baseUrl' of undefined"){//判断是否是token失效重新登录后点击回退按钮报错没找到对应moudle
            switch (window.location.hostname) {
                case '172.16.72.108'://线上环境 172.16.72.108
                    window.location.href='http://172.16.75.200:81/#/login'
                    break;
                default://测试环境 10.12.31.188
                    window.location.href='http://www.xaadmin.com/#/login'
                    break;
            }  
        }else{
            console.log(error)
        }
    }
});
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章