如何在Vue中从一个URL重定向到另一个

时间:2018-08-06 11:32:49

标签: vue.js vue-router

我正在尝试使用Vue路由器从一个URL重定向到另一个URL,例如代码

  {
    path: '/verifyemail/:id/:token',
  //can i somelogic here when user entered 
  },
  {
    path: '/login',
    component:login

  },

我想做什么?当用户注册自己时。当用户单击电子邮件中的“验证”按钮时,服务器会将电子邮件验证链接发送到他的电子邮件,然后应首先调用verifyemail网址。那里有一个带有参数的ajax调用,成功后我现在从verifyemail url获取它应该移动到登录URL注意:-我的verfiyemail路由中没有任何组件 有可能做到这一点还是有其他方法可以实现这一目标

2 个答案:

答案 0 :(得分:2)

最后,我得出的一个解决方案可能就是其他帮助

让我们开始,我发送带有验证按钮的电子邮件,该按钮具有类似“ localhost:8080 /#/ verfiyemail /(“ ACCESSTOKEN”)“的链接,现在我的vue部分我做了类似的操作 在vue-route

path: '/verifyemail/:uid',
beforeEnter:(to, from, next) => {
                    let uid=to.params.uid;
                    next({ path: '/', query: { id: uid}})
        }
},

{
  path: '/',
  name: 'Login',
  component: Login,
},

我是我的login.vue

created(){
       this.verfiyemai();
  },
methods:{
  verfiyemai(){
       var _this=this
       var submit=0

       if(this.$route.query.id!=undefined ){

           if(this.$route.query.id.length<=50){
               this.$router.push('/');
                 submit=1;
            }

        if(submit==0){
                this.$http.get('/api/users/confirm?uid='+this.$route.query.id+'')
             .then(function (response) {
                  console.log(response)
                })
             .catch(function (error) {
               console.log(error)
                 });

            }


        }

     },

}

从电子邮件中,我将用户重定向到verfiyemail,并以令牌ID作为来自verifyemail路由的参数,此后,我将重定向到将参数作为查询传递给登录URL,并在我的登录Vue中创建了一个方法来检查查询长度大于50,则它将axios响应发布到服务器

答案 1 :(得分:1)

路由配置仅是数据,因此实际上没有任何方法可以完全按照您的意愿进行。

如果您创建用于处理/verifyemail/路由的组件,则可以在其中使用this.$router.push(redirectToMe)。有关更多信息,请参见Vue Router docs

或者,这听起来更像是后端服务器自己处理的事情,所以也许您甚至不需要Vue来担心它。