当项目需要,有些统一认证/单点登录登录成功后,会给我们的登录地址后面加上认证参数,需要我们提取这个参数去做登录处理。

因为业务发生在内网机无法截图,下图借图其他博主。

此时经过浏览器访问时,链接中特殊字符“+”被转义会被为%20。

按照w3c转码标准,空格应该被转译成%20,+号被转义成%2B。

因为业务发生在内网机无法截图,下图 借图 其他博主。

我们会发现利用 decodeURIComponent解码时,%20会被我们解码成' '(空格),从而导致解密失败,提取不到我们想要的参数;

解决办法:

将拿到的地址链接中的%20全部替换成'+',然后进行decodeURIComponent解码;

//从浏览器url地址提取?后面的参数,结果为 data。let data = {};let src = window.location.searchlet index = src.indexOf("?");let dataStr = src.substring(src.indexOf("?") + 1);let dataArray = dataStr.split("&");for (let i = 0; i < dataArray.length; i++) {let param = dataArray[i].split("=");data[param[0]] = param[1];}console.log('登录成功后返回的原参数', data)// 修复浏览器url个别转码出错问题。const strData1 = data.SSIAuth.replace(/%20/g, "%2B")//由于url中返回参数的 +号被转义成 %20,其实应该是 %2B,后台再次反转义 %20会转成 空格const strData2 = data.SSISign.replace(/%20/g, "%2B")//由于url中返回参数的 +号被转义成 %20,其实应该是 %2B,后台再次反转义 %20会转成 空格

(如有更好的解决办法还请多多指教)

前端链接地址中‘+‘被编码为%20(本为%2B)问题相关推荐

  1. R语言使用basename函数获取数据链接地址中的文件名称(removes all of the path up to and including the last path separator )

    R语言使用basename函数获取数据链接地址中的文件名称(removes all of the path up to and including the last path separator (i ...

  2. 将url地址中的编码转汉字

    public class URLEncoderURI {//将%E4%BD%A0转换为汉字public static String unescape(String s) {StringBuffer s ...

  3. php网页中出现问号,HTML_地址栏中的问号有什么作用,之前我们曾经解释?过链接地址 - phpStudy...

    地址栏中的问号有什么作用 之前我们曾经解释?过链接地址中CSS和JS后带的问号是做什么的,但一些同学同样发现浏览器地址栏中的URL链接也经常会带问号. 比如这样的链接: http://www.xxx. ...

  4. 微信小程序怎么弄成链接_教你设置小程序链接地址

    在轻应用小程序中设置链接地址可以实现页面的跳转,带用户轻松去往各个页面.其中,能够设置链接的元素丰富多彩,比方说图片.文字等,设置链接的类型究竟有哪些,怎么设置呢?下面听小编娓娓道来. 小程序里面为用 ...

  5. Python使用标准库zipfile+re提取docx文档中超链接文本和链接地址

    推荐教材: <Python程序设计实用教程>,ISBN:978-7-5635-6065-3,董付国,北京邮电大学出版社 教材封面: 全国各地新华书店有售 京东购买链接: 配套资源:教学大纲 ...

  6. html调用app store,iOS 获取appStore的链接地址,从app中跳转 appStore中应用

    从app中跳转到appStore中,分为 1.取得app在appStore中的链接地址 mac打开iTunes,在右上角中的搜索框中输入你的应用名称. 在弹出的菜单中,选择复制链接,得到该应用的链接地 ...

  7. 开发那些事儿:在Flv.js前端播放器中解析并绘制H.264编码中的SEI信息

    流媒体中的SEI是指补充增强信息(Supplemental Enhancement Information),它提供了向视频码流中加入信息的办法,是H.264/H.265视频压缩标准的特性之一.SEI ...

  8. python如何提取网络链接_Python网络爬虫——把一个网页中所有的链接地址提取出来(去重)...

    # 把一个网页中所有的链接地址提取出来. 运行环境Python3.6.4-实现代码:import urllib.request import re #1. 确定好要爬取的入口链接 url = &quo ...

  9. web前端css伪元素使用阿里iconfont中Unicode编码

    web前端css伪元素使用阿里iconfont中Unicode编码 在阿里iconfont中创建项目 新建项目 搜索自己想要的图标并添加入库 点击购物车 添加至项目 回到"我的项目" ...

最新文章

  1. struct发送与显示中文
  2. 开启3D硬件加速导致Virtualbox无法响应
  3. div方框弯曲边样式_使用弯曲样式编辑文本
  4. 用友 无法正确解析服务器,用友T3软件登陆软件时提示:“可能无法正确解析服务器名称或者相应的端口被禁用,请尝试输入服务器的IP地址”?...
  5. VMware vSAN的六大优势和案例分享
  6. 常用应用层传输协议和端口
  7. jooq生成records_Java 14 Records类
  8. 防抖与节流方案_手写系列之防抖和节流
  9. 如何用python计算函数的值域_用Python解数独[3]:求总值域
  10. python 颜色条_python – 在Matplotlib / Cartopy中创建颜色条图例
  11. 我想用人工智能留住父亲
  12. questasim中点击 add wave 后,显示 no data 解决方法
  13. 无处不在_您的图片是病毒。 他们在互联网上无处不在
  14. 软件破解高手常用的破解工具介绍
  15. Python中Set函数
  16. Ubuntu server 开机网络需要等待5分钟
  17. 2021年最新最全面的Java视频教程!!!
  18. 百度员工猝死 是否过劳死引发争论
  19. 激光频率旋转框架与哈密顿量
  20. 数据分析系列之Python数据分析简介

热门文章

  1. 适合编程初学者练习的两个案例
  2. 2020年Android面试高频知识点小结+9家公司面试真题
  3. 如何购买腾讯云服务器(帮助文档)
  4. iOS 12系统安装教程:开发者预览版抢先体验
  5. 搜狗高速浏览器2.0使用体验
  6. 【Canvas】canvas绘制emoji笑脸
  7. SOMEIP环境搭建以及Demo详细介绍
  8. odoo 中英文翻译设置
  9. 运行 方法 时出错: Cannot run program 、jdk丢失、系统找不到指定的文件。
  10. 爬取虎牙直播图片的代码分析