vue清除地址栏参数(可以单个,可以多个)

需求

vue跳转新页面后,清除url里面的参数,就是上一个页面带过来的参数,只用一次

mounted () {this.$nextTick(() => {let url = this.getnewurl()window.history.replaceState(null, null, url);})},methods: { //根据参数名去清除,可以多个getnewurl () {let url = document.location.href;let reg = /[^\w](url参数名|url参数名)=?([^&|^#]*)/g;url = url.replace(reg, "");reg = /&&/g;url = url.replace(reg, "");reg = /&#/g;url = url.replace(reg, "#");reg = /\?#/g;url = url.replace(reg, "#");// url = url.replaceAll(document.domain,"");// url = url.replaceAll("http://","");// url = url.replaceAll("https://","");reg = /\?#/g;url = url.replace(reg, "#");return url;},

项目场景 使用

点击 登录按钮 调取后端接口 接口返回跳转链接,前端新窗口打开链接并调接口将链接中的参数传给后端,后端返回成功 即页面直接跳转首页
在这里插入图片描述

思路

1.点击 登录按钮 调接口 获取到 要跳转的链接 使用 window.open 新页面打开
2.获取到跳转链接后 在mounted 中判断,该链接中 是否有code参数,有则拿到code值,调第二个接口,接口返回成功后,跳转首页

接口返回的跳转链接

http://localhost:8000/?code=AAAAAAAAAAAAAAAAAAAAAA.lniGQWB82wg-ADoYxyfFvcb6mcg.XFAVlY5FaiyOCt0GUHsMkbNw66SkpyD9g1CRIXLJETXjrjPHpYal9gpioxkv2Afo-h_a9-gL_tJHyG8d7TWdYa65GRWe-h1pCdsAvduaJXn9dnOruU5TBcB8lVYIBmPQ6LQfPDQRmt7vpU_aZeYEiBaudfPGrwJekfG5LQd6GrHgcnJUafuLOI6r6Ju9W6cogiXrcfTHDT1B__jXKGiUP0xvn2Y5yvQs6BpmAsqsvMuSgpdYfGz2GFlNpCefDqBltjwRSfL206wTbwczA85FmXSmFbBrESZltIb7DR3Zpc80RDEJ6Q4hAMZbwI7-GK54TPrJQXASqTLqjRhA4oicOw&state=15d57431-f939-4e4a-8006-fab1358cafee9507c217-d512-4f28-a8bf-c16928db80ce%20HTTP/1.1#/login?redirect=%2FHomePage

遇到的问题

当用户点击退出登陆后,页面会跳到带有参数的登录页,而不是一开始的登录页,跳转到带有参数的登录页又会直接进入首页。所以 考虑到这个问题,在代码中加了一步 去掉返回链接中的 参数 功能 这样就可以 点击退出登录 跳转登录页 就不会立马又跳回首页啦

代码

   <div class="mg-login"><el-button size="medium" type="primary" style="width: 100%" @click.native.prevent="mgLogin">login in</el-button></div>
  mounted() {this.judgeHome() //判断是否要跳转首页},
methods: {// 美光登录按钮mgLogin() {micronLogin().then(res => {window.open(res, "_blank");})},// 美光 登录传codemgCode(params) {let data = {code: params}micronLoginAuth(data).then(res => {if (res.token) {localStorage.setItem("token", res.token)setToken(res.token, false)let url = this.getnewurl()window.history.replaceState(null, null, url);this.$router.push({path: this.redirect || "/",query: { load: 1 },});} else {this.$infoMsg.showErrorMsg(res.msg, this);}}).catch((err) => {console.log(err, 'err.response.data.message')this.$infoMsg.showErrorMsg(err.response.data.message, this);this.loading = false;//  this.getCode()});},// 是否直接跳转首页judgeHome() {var url = location.search;//获取url中‘?’符后的if (url.indexOf('?') != -1) {url = url.split("?")[1];}const codeName = url.slice(0, 4)const paramsCode = url.slice(6)if (codeName == 'code') {this.mgCode(paramsCode)} else { }},//根据参数名去清除,可以多个getnewurl() {let url = document.location.hreflet reg = /[^\w](code|state)=?([^&|^#]*)/g;url = url.replace(reg, "");reg = /&&/g;url = url.replace(reg, "");reg = /&#/g;url = url.replace(reg, "#");reg = /\?#/g;url = url.replace(reg, "#");reg = /\?#/g;url = url.replace(reg, "#");return url;}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/13116.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ModaHub魔搭社区:阿里云CTO周靖人:魔搭社区将成为中国最大的“大模型自由市场”

7月7日消息&#xff0c;阿里云CTO周靖人在上海世界人工智能大会上宣布了阿里云的发展计划。 他表示&#xff0c;阿里云将致力于推动中国大模型生态的繁荣&#xff0c;并为大模型创业公司提供全方位的支持。阿里云魔搭社区已经聚集了180万AI开发者和900多个优质AI模型&#xff0…

Unity3d的智力拼图小游戏

Unity3d的智力拼图小游戏 项目地址&#xff1a;https://download.csdn.net/download/Highning0007/88015674

3.4.流的学习,异步任务的管理

目录 前言1. 流总结 前言 杜老师推出的 tensorRT从零起步高性能部署 课程&#xff0c;之前有看过一遍&#xff0c;但是没有做笔记&#xff0c;很多东西也忘了。这次重新撸一遍&#xff0c;顺便记记笔记。 本次课程学习精简 CUDA 教程-流的学习&#xff0c;异步任务的管理 课程大…

机器学习之多元微积分

机器学习的多元微积分跟高等数学中的多元微积分有很多不同之处。 机器学习中的变量都是向量或者矩阵机器学习中的函数一般都是线性函数&#xff0c;而不是高数中的曲线和曲面、体积等函数。因此&#xff0c;机器学习中的微积分跟线性代数结合在一起。机器学习中导数的分子分母…

山西电力市场日前价格预测【2023-07-09】

日前价格预测 预测明日&#xff08;2023-07-09&#xff09;山西电力市场全天平均日前电价为386.09元/MWh。其中&#xff0c;最高日前价格为505.65元/MWh&#xff0c;预计出现在21: 30。最低日前电价为286.38元/MWh&#xff0c;预计出现在13: 30。 以上预测仅供学习参考&#x…

新版本FasterTransformer的FUSED_MHA

关于 UNFUSED_PADDED_MHA VS FUSED_MHA FUSED_MHA用了另一种kernel的执行方法(和添加链接描述相同,将在下一个section说明)UNFUSED_PADDED 的 KERNELS执行代码在 src/fastertransformer/kernels/unfused_attention_kernels.cu enum class AttentionType {UNFUSED_MHA,UNFUSED…

OpenCloudOS社区开源,助力软件开发

早前红帽宣布限制源代码访问性的政策&#xff0c;并解释说RHEL相关源码仅通过CentOS Stream公开&#xff0c;付费客户和合作伙伴可通过Red Hat Customer Portal访问到源代码&#xff0c;由此也导致非客户获取源码越来越麻烦&#xff0c; 据了解&#xff0c;CentOS是红帽发行的…

CentOS 7镜像下载 以及 DVD ISO 和 Minimal ISO 等各版本的区别介绍

1.官网下载 官网下载地址&#xff1a;官网下载链接 点击进入下载页面&#xff0c;随便选择一个下载即可&#xff08;不推荐&#xff0c;推荐阿里云下载&#xff0c;见下文&#xff09; 阿里云下载站点&#xff08;速度非常快推荐&#xff09; 阿里云下载链接&#xff1a; http…

第十二章 kafka

Producer:Producer即生产者,消息的产生者,是消息的入口。 kafka cluster: Broker:Broker是kafka实例,每个服务器上有一个或多个kafka的实例,我们姑且认为每个broker对应一台服务器。每个kafka集群内的broker都有一个不重复的编号,如图中的broker-0、broker-1等…… 主…

Spring 最全入门教程详解

目录 一、Spring Framwork简介1. Spring Framework五大功能模块2. Spring Framework特性 二、IOC容器1. IOC思想2. IOC容器在Spring中的实现3.基于xml管理Bean3.1 引入依赖3.2 创建类3.3 创建Spring的配置文件3.4 创建测试类3.5 总结 4.DI依赖注入4.1 setter注入4.2 构造器注入…

Mycat【Mycat高可用(安装配置HAProxy、安装配置Keepalived)】(八)-全面详解(学习总结---从入门到深化)

目录 Mycat高可用_安装配置HAProxy Mycat高可用_安装配置Keepalived 复习&#xff1a; Mycat高可用_安装配置HAProxy 安装配置HAProxy 查看列表 yum list | grep haproxy yum安装 yum -y install haproxy 修改配置文件 $ vim /etc/haproxy/haproxy.cfg 启动HAProxy …

学习Angular的编程之旅

目录 1、简介 2、特点 2.1 横跨多种平台 2.2 速度与性能 2.3 美妙的工具 3、Angular 应用&#xff1a;知识要点 3.1 组件 3.2 模板 3.3 依赖注入 4、与其他框架的对比 1、简介 Angular 是一个应用设计框架与开发平台&#xff0c;旨在创建高效而精致的单页面应用。 A…