前端链接地址中‘+‘被编码为%20问题记录

很多时候为了保证链接传参的安全性,我们会对传递的参数进行加密处理,如下图

 

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

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

解决办法:

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

var url = location.href; //取得整个地址栏
var num = url.indexOf("?");
var param = url.substr(num + 1); //获取整个参数串    
param = decodeURIComponent(param.replace(/%20/g,"+"))

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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值