如何在 vue 中从一个 url 重定向到另一个
how to redirect from one url to another in vue
我正在尝试使用 Vue 路由器从一个 URL 重定向到另一个 URL,例如代码
{
path: '/verifyemail/:id/:token',
//can i somelogic here when user entered
},
{
path: '/login',
component:login
},
我想做什么?当用户自己注册时。当用户从他的电子邮件中单击验证按钮时,服务器将电子邮件验证 link 发送到他的电子邮件,然后它应该首先调用 verifyemail url。它有一个 ajax 调用,其参数是我从 verifyemail url 获得的,现在成功后它应该移动到登录 url 注意:- 我的 verfiyemail 中没有任何组件路线
有没有可能做到这一点,或者有没有其他方法可以做到这一点
路由配置只是数据,所以没有任何方法可以完全按照您的意愿执行此操作。
如果您创建一个组件来处理 /verifyemail/
路由,您可以只在其中使用 this.$router.push(redirectToMe)
。有关详细信息,请参阅 Vue Router docs。
或者,这听起来更像是后端服务器自己处理的事情,所以也许您甚至不需要 Vue 来担心它。
最后,我得出了一个解决方案,可能对其他人有帮助
开始吧,我发送带有验证按钮的电子邮件,其中有 link 类似 "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,那么它将 post axios 响应到服务器
我正在尝试使用 Vue 路由器从一个 URL 重定向到另一个 URL,例如代码
{
path: '/verifyemail/:id/:token',
//can i somelogic here when user entered
},
{
path: '/login',
component:login
},
我想做什么?当用户自己注册时。当用户从他的电子邮件中单击验证按钮时,服务器将电子邮件验证 link 发送到他的电子邮件,然后它应该首先调用 verifyemail url。它有一个 ajax 调用,其参数是我从 verifyemail url 获得的,现在成功后它应该移动到登录 url 注意:- 我的 verfiyemail 中没有任何组件路线 有没有可能做到这一点,或者有没有其他方法可以做到这一点
路由配置只是数据,所以没有任何方法可以完全按照您的意愿执行此操作。
如果您创建一个组件来处理 /verifyemail/
路由,您可以只在其中使用 this.$router.push(redirectToMe)
。有关详细信息,请参阅 Vue Router docs。
或者,这听起来更像是后端服务器自己处理的事情,所以也许您甚至不需要 Vue 来担心它。
最后,我得出了一个解决方案,可能对其他人有帮助
开始吧,我发送带有验证按钮的电子邮件,其中有 link 类似 "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,那么它将 post axios 响应到服务器