无法读取查询参数因为vue.js将#/添加到url的末尾

时间:2018-02-21 13:18:18

标签: vue.js routing routes url-parameters

我在vueJS中有一个单页应用程序:

let router = new VueRouter({
  routes: [
    { path: '/',  component: Dis13HomeComponent },
    { path: '**', component: Dis13HomeComponent }
  ]
});

在mount()的主要组件中,我得到这样的url param:

this.$route.query.token;

但是,如果我打开http://www.myapp.com/app.html?token=s56ds6d5d56f6ef6e,它就不会读取令牌参数,因为vue正在将#/添加到网址的末尾,因此它看起来像http://www.myapp.com/app.html?token=s56ds6d5d56f6ef6e#/

如果我打开url:http://www.myapp.com/app.html#/?token=s56ds6d5d56f6ef6e这种格式,那么它可以工作,但在服务器上禁止使用此路径。

我怎样才能读取令牌参数?

1 个答案:

答案 0 :(得分:1)

让您的路由器使用history模式,您将不再拥有'#'。

const router = new VueRouter({
  mode: 'history',     // <------------- HERE
  routes: [
    { path: '/',  component: Dis13HomeComponent },
    { path: '**', component: Dis13HomeComponent }
  ]
});