【发布时间】:2017-10-15 18:24:06
【问题描述】:
我使用vue-router 和vue-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