在导航防护中使用vue-router重定向

时间:2017-10-06 20:52:52

标签: vue.js vue-router

我正在使用vue.js,我希望能够将用户重定向到导航栏beforeRouteEnter

中的其他网址

如果用户的当前城市不在网址中并重定向,则可以获取该用户的当前城市。

例如,如果您输入london.example.com,您就可以了。 如果您输入example.com,我希望将用户重定向到london.example.com

问题

window.location.replace似乎无效

next()将回复附加到网址中,而不是在其前面添加。

代码

beforeRouteEnter (to, from, next) {
const subdomain = window.location.hostname.split('.')[0]
if (!subdomain) {
  axios.get('/api/getCity').then((response) => {
    if (response.data) {
      window.location.replace(response.data + '.localhost:8080')
      next({ path: 'http://' + response.data + '.localhost:8080' })
    }
  })
}

},

2 个答案:

答案 0 :(得分:0)

window.location.href = 'http://' + response.data + '.localhost:8080'

答案 1 :(得分:0)

我会跳过尝试完全使用 window api,而是使用 Vue Router 的内置重定向功能,方式如下:

beforeRouteEnter (to, from, next) {
    // get current route from `from`
    if (from.fullPath.contains('whatever') {
        // programmatically navigate where you want to go
        this.$router.push(path: `my ${desired} url`
    }
}