前端链接地址中‘+‘被编码为%20(本为%2B)问题
当项目需要,有些统一认证/单点登录登录成功后,会给我们的登录地址后面加上认证参数,需要我们提取这个参数去做登录处理。
因为业务发生在内网机无法截图,下图借图其他博主。
此时经过浏览器访问时,链接中特殊字符“+”被转义会被为%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)问题相关推荐
- 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 ...
- 将url地址中的编码转汉字
public class URLEncoderURI {//将%E4%BD%A0转换为汉字public static String unescape(String s) {StringBuffer s ...
- php网页中出现问号,HTML_地址栏中的问号有什么作用,之前我们曾经解释?过链接地址 - phpStudy...
地址栏中的问号有什么作用 之前我们曾经解释?过链接地址中CSS和JS后带的问号是做什么的,但一些同学同样发现浏览器地址栏中的URL链接也经常会带问号. 比如这样的链接: http://www.xxx. ...
- 微信小程序怎么弄成链接_教你设置小程序链接地址
在轻应用小程序中设置链接地址可以实现页面的跳转,带用户轻松去往各个页面.其中,能够设置链接的元素丰富多彩,比方说图片.文字等,设置链接的类型究竟有哪些,怎么设置呢?下面听小编娓娓道来. 小程序里面为用 ...
- Python使用标准库zipfile+re提取docx文档中超链接文本和链接地址
推荐教材: <Python程序设计实用教程>,ISBN:978-7-5635-6065-3,董付国,北京邮电大学出版社 教材封面: 全国各地新华书店有售 京东购买链接: 配套资源:教学大纲 ...
- html调用app store,iOS 获取appStore的链接地址,从app中跳转 appStore中应用
从app中跳转到appStore中,分为 1.取得app在appStore中的链接地址 mac打开iTunes,在右上角中的搜索框中输入你的应用名称. 在弹出的菜单中,选择复制链接,得到该应用的链接地 ...
- 开发那些事儿:在Flv.js前端播放器中解析并绘制H.264编码中的SEI信息
流媒体中的SEI是指补充增强信息(Supplemental Enhancement Information),它提供了向视频码流中加入信息的办法,是H.264/H.265视频压缩标准的特性之一.SEI ...
- python如何提取网络链接_Python网络爬虫——把一个网页中所有的链接地址提取出来(去重)...
# 把一个网页中所有的链接地址提取出来. 运行环境Python3.6.4-实现代码:import urllib.request import re #1. 确定好要爬取的入口链接 url = &quo ...
- web前端css伪元素使用阿里iconfont中Unicode编码
web前端css伪元素使用阿里iconfont中Unicode编码 在阿里iconfont中创建项目 新建项目 搜索自己想要的图标并添加入库 点击购物车 添加至项目 回到"我的项目" ...
最新文章
- struct发送与显示中文
- 开启3D硬件加速导致Virtualbox无法响应
- div方框弯曲边样式_使用弯曲样式编辑文本
- 用友 无法正确解析服务器,用友T3软件登陆软件时提示:“可能无法正确解析服务器名称或者相应的端口被禁用,请尝试输入服务器的IP地址”?...
- VMware vSAN的六大优势和案例分享
- 常用应用层传输协议和端口
- jooq生成records_Java 14 Records类
- 防抖与节流方案_手写系列之防抖和节流
- 如何用python计算函数的值域_用Python解数独[3]:求总值域
- python 颜色条_python – 在Matplotlib / Cartopy中创建颜色条图例
- 我想用人工智能留住父亲
- questasim中点击 add wave 后,显示 no data 解决方法
- 无处不在_您的图片是病毒。 他们在互联网上无处不在
- 软件破解高手常用的破解工具介绍
- Python中Set函数
- Ubuntu server 开机网络需要等待5分钟
- 2021年最新最全面的Java视频教程!!!
- 百度员工猝死 是否过劳死引发争论
- 激光频率旋转框架与哈密顿量
- 数据分析系列之Python数据分析简介