vue.js - 为什么重定向后 url 变成这样(在 # 之前添加?)以及如何正确重定向
问题描述
我正在制作一个带有重定向功能的登录页面,逻辑如下:
如果我从未登录并输入 url '/home/qiputranscode',它将重定向到
' http://127.0.0.1:8000/#/login?redirect=%2Fhome%2Fqiputranscode '。
然后我需要使用用户名和密码请求服务器以获取条目“/home/qiputranscode”页面的令牌。
但是在输入我的用户名和密码后,网址变成了这样:
' http://127.0.0.1:8000/?#/login?redirect=%2Fhome%2Fqiputranscode '
并且没有请求服务器或重定向到“/home/qiputranscode”。
那么,为什么要添加 url?本身在 # 之前。
它们之间有什么区别,如果您给我任何建议,我将不胜感激
重定向代码如下:
router.beforeEach((to, from, next) => {
if (to.matched.some(r => r.meta.requiredAuth)) {
if (store.state.token) {
next()
} else {
next ({
path: '/login',
query: {redirect: to.fullPath}
})
}
} else {
next()
}
});
解决方案
之后的部分?
是query
withkey=redirect
和value=full path
登录后重定向到保存的路径调用这个
this.$router.push({ path: this.$route.query.redirectTo })
而且你还需要防止默认的表单行为
<form v-on:submit.prevent ...
推荐阅读
- asp.net - 当 IDENTITY_INSERT 设置为 OFF 时,无法在表“表”中插入标识列的显式值,但可以在 db 上手动插入
- javascript - 基本的一条消息骰子滚轮?
- firebase - react-native-firebase 包是否处理“长时间设置计时器是性能和正确性问题”警告?
- firebase - Firebase 函数返回错误的时间
- python - Flask_SQLAlchemy 读取新数据库
- linq - OrderBy 的字节与布尔值
- node.js - 访问节点中的数据字段给了我未定义的
- r - 将数据从一个地理区域分配到另一个地理区域
- javascript - 激活手机摄像头拍照
- ios - iOS - 无法与直接分享到 Instagram 故事的视频进行交互