请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

后台报错:when going from "/login" to "/console" via a navigation guard.

登录的时候console报这个错:
vue-router.esm.js?8c4f:2065 Uncaught (in promise) Error: Redirected when going from “/login” to “/console” via a navigation guard.

以下是相关组件代码:
Login.vue

 methods: {
    submitForm(formName) {
      this.$refs[formName].validate((valid) => {
        if (valid) {
          login(this.ruleForm).then(res => {
            let {code, msg} = res.data;
            if(code == 20000) {
              this.$router.push('/console')
            } else {
              return false;
            }
          })
        } 
      });
    },
    resetForm(formName) {
      this.$refs[formName].resetFields();
    },
  },

路由index.js

const routes = [
  {
    path: '/',
    redirect: '/login'
  },
  {
    path: '/login',
    name: 'login',
    meta: {title: 'Login'},
    component: () => import('../views/Login.vue')
  },

正在回答 回答被采纳积分+3

2回答

扬_灵 2021-04-19 18:25:34

同学你好,你的问题定位到了是路由守卫这里出现了问题,你在项目中添加了两个全局路由守卫//img1.sycdn.imooc.com//szimg/607d5469098bd95113520868.jpg

这里的判断条件如果不是去login页面就跳转到login页面,这里的逻辑有些问题。把这里的条件注释掉才能进去第二个全局路由守卫中。你说的mastar和main指的是什么?

0 回复 有任何疑惑可以回复我~
  • 提问者 慕后端1189009 #1
    我把整段代码注释了,还要是点击两次才能进入
    回复 有任何疑惑可以回复我~ 2021-04-19 19:10:38
  • 提问者 慕后端1189009 #2
    permission.js里的角色,第一次点击登录,没有获取,没有转跳页面,第二次点击,获取角色,页面转跳,为什么第一次点击没有获取角色?
    回复 有任何疑惑可以回复我~ 2021-04-19 19:16:48
  • 提问者 慕后端1189009 #3
    好想找到问题了,commit没有执行,所以没有角色,逻辑重新写了下,暂时没问题。但是还有个问题,刷新页面,导航栏里没有保存状态,例如,在博客管理下的查看,如果刷新页面,折叠栏就会收缩,不会停留在 管理 状态
    回复 有任何疑惑可以回复我~ 2021-04-19 19:30:58
扬_灵 2021-04-19 09:18:40

同学你好,可以参考一下这篇文档https://blog.csdn.net/weixin_44039043/article/details/109400572 

0 回复 有任何疑惑可以回复我~
  • 提问者 慕后端1189009 #1
    根据方法修改后没有出现报错,但是需要点击两次登录或者点击一次登录+刷新页面,才会进入转跳页面submitForm(formName) {
          this.$refs[formName].validate((valid) => {
            if (valid) {
              login(this.ruleForm).then(res => {
    
                let {code, msg} = res.data;
                if(code == 20000) {
                  console.log('前')
                  this.$router.push('/console')
                  console.log('后')
                } else {
                  return false;
                }
              })
            }
            else {
              console.log("error submit!!");
              return false;
            }
          });
        },
    
    第一次点击登陆,console.log的前、后都有打印,但是就是没转跳
    回复 有任何疑惑可以回复我~ 2021-04-19 14:47:14
  • 扬_灵 回复 提问者 慕后端1189009 #2
    同学你好,可以把你的代码上传到github或是码云这些代码托管平台,把地址发我一下,我在本地帮你测试定位一下问题。
    回复 有任何疑惑可以回复我~ 2021-04-19 17:23:37
  • 提问者 慕后端1189009 回复 扬_灵 #3
    https://github.com/dancingzero/vue-blog-console/tree/master
    还有个问题,如何把master改为main?
    谢谢老师!
    回复 有任何疑惑可以回复我~ 2021-04-19 17:37:20
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号