【问题标题】:Vue-router doesn't seem to load the default route on page loadVue-router 似乎没有在页面加载时加载默认路由
【发布时间】:2017-10-15 18:24:06
【问题描述】:

我使用vue-routervue-cli 设置了我的Vue 2.0 项目。我项目中的每个页面都是一个单独的 .vue 组件,通过路由连接在一起。

这是我的router/index.js

import Vue from 'vue'
import Router from 'vue-router'
import Login from '@/components/Login/Login'
import Component1 from '@/components/Component1/Component1'
import Component2 from '@/components/component2/component2'

Vue.use(Router)

const router = new Router({
  history : false,
  routes: [
    {
      path: '/',
      name: 'Login',
      component: Login
    },
    {
      path : '/component1',
      name : 'Component1',
      component : Component1
    },
    {
      path : '/component2',
      name : 'Component2',
      component : Component2
    },
    {
      path : '*',
      redirect : '/'
    }
  ]
});

当我使用npm run dev 命令运行我的项目时,它会按预期在 URL localhost:8080/#/ 中加载登录页面。

问题:

在我在登录页面中输入我的用户名和密码后,应用程序会将我重定向到 URL localhost:8080/?#/ 的同一登录页面。注意哈希之前的问号。此时我不得不再次输入我的用户名和密码,以便将我路由到正确的 URL(在本例中为 localhost:8080/?#/component1 等)。

当我直接去网址localhost:8080/?#/时,就不会出现这个问题。我该如何解决这个问题?我不希望用户输入他们的凭据两次。

【问题讨论】:

  • 您的登录表单是否以 GET 而非 POST 或 XHR 请求的形式提交?见这里:forum-archive.vuejs.org/topic/4801/…
  • 我没有使用 vuex。我正在使用 POST 请求进行登录。此外,无论凭据是什么,登录页面都会重新加载。即使只是点击登录按钮也是如此。
  • vuex 与我链接的那个问题无关,但如果你确定你一直在使用 POST,我可能走错了路。
  • 虽然根据您的回答,您的表单确实是作为 GET 提交的。

标签: javascript vuejs2 vue-router


【解决方案1】:

在看到 Daniel 的评论后,我自己解决了这个问题,方法是将登录页面中的 <form> 替换为 <div>

【讨论】:

    猜你喜欢
    • 2019-08-24
    • 2013-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-05
    • 1970-01-01
    • 2017-02-18
    相关资源
    最近更新 更多