专栏首页JAVA后端开发VUE 前后端分离登陆后跳回原访问地址

VUE 前后端分离登陆后跳回原访问地址

现在前后端分离,如果用户没登陆,会跳到登陆页面,但登陆后,很多时候直接跳回首页,而不是原来未登陆页面。 解决办法如下:

  1. 拦截登陆时,记录登陆前的地址
// 拦截响应response,并做一些错误处理  
axios.interceptors.response.use((response) => {
    if(response.status ===200 && response.data && response.data.code === 401) {
        //console.log(window.location.origin);
        window.kk=response.data.stackMsg+"?redirceUrl="+encodeURIComponent(window.kk);
    }

}

如果没有登陆,就跳到登陆页,将记录原来的访问地址为redirceUrl,注意URL要编码encodeURIComponent

  1. 登陆成功后,根据参数,跳回原来地址
  AjaxByAll('post', 'sys/login/loginSystem', this.ruleForm).then(data => {
                            if (data.code === 200) {
                                if (data.data) {
                                    localStorage.setItem('token', data.data);
                                    let redirceUrl = this.$route.query.redirceUrl;
                                    if (typeof redirceUrl != 'undefined') {
                                       window.kk=redirceUrl;
                                   }
                                   else {
                                       this.$router.push({
                                           path: '/'
                                       });
                                   }
                                } else {
                                    this.$message({
                                        message: 'token丢失',
                                        type: 'error'
                                    });
                                }

                            } else {
                                this.$message({
                                    message: data.msg,
                                    type: 'error'
                                });
                            }

                        });

}

登陆成功后,跳到redirceUrl地址。 至此,前后端分离登陆后跳回原访问地址功能已完成!

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • maven中打不同JDK版本的jar包

    最近项目中,I商机用jdk1.7,而ltc用jdk1.8,所以提供给他们的api都要不同的版本

    星痕
  • xml与java对象的快速互转

    做流程图的项目时,新的流程定义为xml的,需要对xml与java对象进行互转 查了一下activiti的转换xml方式,发现转换太麻烦了,需要一步步的解析xm...

    星痕
  • activiti的坑---流程删除触发节点结束

    这个简单,实现activti的事件接口ExecutionListener中就可以了! 代码简单如下

    星痕
  • 从汇编、C语言到开发FPGA,总结出的“三多”一个也不能少!

    从大学时代第一次接触FPGA至今已有10多年的时间,至今记得当初第一次在EDA实验平台上完成数字秒表、抢答器、密码锁等实验时那个兴奋劲。当时由于没有接触到HDL...

    MCU起航
  • 京东大数据研发部3篇论文同时被国际顶级人工智能协会AAAI收录

    京东大数据研发部与中科院、美国西北大学、美国加州大学伯克利分校等相关机构合作,深度参与技术研究,在即将举行的第三十二届美国人工智能顶级国际会议AAAI-2018...

    京东技术
  • 微信小程序:setData方法详解和注意事项

    在微信小程序中经常会使用到setData函数把变量渲染到视图层,那么什么是setData呢?如何使用?注意事项有些什么?下面我们就来详细了解一下!

    极乐君
  • Class.forName 和 ClassLoader 到底有什么区别?

    在 java 中 Class.forName() 和 ClassLoader 都可以对类进行加载。ClassLoader 就是遵循双亲委派模型最终调用启动类加载...

    挨踢小子部落阁
  • 面试官:说说 Class.forName 和 ClassLoader 的区别?

    在 Java 中 Class.forName() 和 ClassLoader 都可以对类进行加载。ClassLoader 就是遵循双亲委派模型最终调用启动类加载...

    南风
  • Class.forName 和 ClassLoader 到底有什么区别?

    在 java 中 Class.forName() 和 ClassLoader 都可以对类进行加载。ClassLoader 就是遵循双亲委派模型最终调用启动类加载...

    黄泽杰
  • 在 Java 的反射中,Class.forName 和 ClassLoader 的区别

    最近在面试过程中有被问到,在Java反射中Class.forName()加载类和使用ClassLoader加载类的区别。当时没有想出来后来自己研究了一下就写下来...

    哲洛不闹

扫码关注云+社区

领取腾讯云代金券