报错:Avoided redundant navigation to current location: “/login“.完美解决

这篇具有很好参考价值的文章主要介绍了报错:Avoided redundant navigation to current location: “/login“.完美解决。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

需求:

登陆之后才能查看主页面,否则跳转至登录页

遇到的问题:

一开始是打算直接在拦截器跳转路由的,发现会报错Avoided redundant navigation to current location: "/login".

后来灵机一动,用了全局路由守卫,完美解决

request.interceptors.request.use(config=>{
    config.headers['Content-Type']='application/json;charset=utf-8'
    let user=localStorage.getItem("user")
    if(!user){
        router.push("/login")
    }
    return config
},error=> {
    return Promise.reject(error)
})

报错:

报错:Avoided redundant navigation to current location: “/login“.完美解决,前端,vue.js,前端,javascript

解决方案:

添加全局路由守卫,并通过localStorage存储信息

全局路由守卫:

router.beforeEach((to,from,next)=>{
    let user = localStorage.getItem("user");
    if(!user){
        if(to.path!=='/login'){
            next({path:"/login"})
        }else{
            next()
        }
    }else{
        next()
    }
})

登录界面的逻辑判断:文章来源地址https://www.toymoban.com/news/detail-719452.html

         request.post("/user/login",this.form).then(
              res=>{
                if(res.code==='0'){
                  this.$message({
                    type:"success",
                    message:"登录成功"
                  })
                  localStorage.setItem("user",JSON.stringify(res.data))
                  this.$router.push("/")
                }else{
                  this.$message({
                    type:"error",
                    message:res.msg
                  })
                }
              }
          )

到了这里,关于报错:Avoided redundant navigation to current location: “/login“.完美解决的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 错误 “Avoided redundant navigation to current location...” 的解决方案

    当 vue 项目中使用 vue-router 的 编程式导航 写法进行路由切换时: 如果用户在页面 多次点击按钮 时,浏览器的控制台报如下错误: 错误原因: vue-router 实例上的 push 方法返回的是 promise 对象,所以传入的参数期望有一个成功和失败的回调,如果省略不写则会报错。 解决方案

    2024年02月16日
    浏览(30)
  • ❤ 错误 “Avoided redundant navigation to current location...” 的解决方案

    vue 项目中使用 vue-router 的 编程式导航 写法进行路由切换时: 如果用户在页面 多次点击按钮 时,浏览器的控制台报如下错误: vue-router 实例上的 push 方法返回的是 promise 对象,所以传入的参数期望有一个成功和失败的回调,如果省略不写则会报错。 方案一:每次使用 push

    2024年04月23日
    浏览(20)
  • vue-router.esm.js?a12b:2046 Uncaught (in promise) NavigationDuplicated: Avoided redundant navigation

    vue-router.esm.js?a12b:2046 Uncaught (in promise) NavigationDuplicated: Avoided redundant navigation to current location: \\\"/home\\\".   报错原因:重复点击路由导致,因为vue-router引入了promise,当我们使用this.$router.push时候需要多添加成功或失败的回调,否则就会报出以上的错误。 原代码 第一种         在进

    2023年04月08日
    浏览(100)
  • selenium报错Unable to locate element

    背景: 使用selenium写自动化脚本时,在登录后的新界面进行点击一直报错 内容如下: 报错如下: 解决方案: 查找各方资料后,有几种情况会造成报错,以下为解决方案: 1、定位的页面重新开了一个iframe,需要切换iframe,语句如下: 或者如下语句: 或者如下语句: 2、时间

    2023年04月09日
    浏览(29)
  • Message: no such element: Unable to locate element:selenium报错

           最近在使用selenium爬虫时遇到了这个报错,反复检查了自己xpath路径确认没有问题。但是程序还是会报错:“Message: no such element: Unable to locate element: {“method”:“xpath”,“selector”:“//*[@id=“rootWrapper”]/div/div/div/div[2]/div/div[2]/div/div/div/div[2]/div[2]/ul/li[1]”}”。 代码如

    2024年02月11日
    浏览(27)
  • Laravel 使用mix引入本地样式文件 报错 Unable to locate Mix处理

    ✔ Compiled Successfully in 4524ms ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────┬

    2024年02月13日
    浏览(30)
  • 解决linux安装yum报错 E: Unable to locate package yum

    参考: 解决linux安装yum报错 E: Unable to locate package yum

    2024年02月04日
    浏览(43)
  • 【vue】Vue-Router报错:Uncaught (in promise)Error: Navigation cancelled from “/“ to “/1“ with a new navig

    一、问题: 二、分析: 该错误是因为vue-router的内部 没有对编程式导航进行catch处理 ,所以在使用 this.$router.push() 和 this.$router.replace 进行路由跳转时,往同一地址跳转时或者在跳转的 mounted/activated 等函数中再次向其他地址跳转时会出现报错。但是在3.1.0版本及更高版本中,

    2024年02月04日
    浏览(45)
  • Ubuntu 20.04安装yum报错:E: Unable to locate package yum

    直接上解决方案! 1、选择自己对应的版本的源地址 注意需要选择跟系统版本一致的:https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu/ 找到Ubuntu点击小问号,进去选择对应的版本,将下面的镜像复制到Linux系统的 /etc/apt/sources.list 文件中,将原来的源先备份再全部覆盖。 备份文件 cp 

    2024年01月24日
    浏览(43)
  • Pycharm 安装 github copilot 报错:failed to initiate the github login process please try again

    下载安装好copilot插件后,提示failed to initiate the github login process please try again 就非常的emo。。。     我的pycharm是2021.1版本,在setting中安装最新版copilot1.1.35.2063(我这两个版本亲测可使用) 之前有教程说,可以去copilot官网降低copilot版本,解决这个报错问题。但是,若降低版

    2024年02月02日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包