微信分享url带多个参数问题解决

博客讲述了前端在拼接URL时出现的&被转义为&问题,导致生成的签名与实际URL不匹配,进而引发配置错误。解决方案是前端使用encodeURIComponent对URL进行编码,后端接收到编码后的URL后使用URLDecoder.decode进行解码,确保解码后的URL与实际页面一致,从而正确生成签名。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

出现问题:

发现url拼接多参数时,前端传过来的url的&变成&了,如下图。导致生成签名时实际是用错误的url生成的签名,就和当前页面url不一致了,就出现问题config:invalid signature

解决:

用encodeURIComponent(uri)前端对url进行编码

例如链接:

http://域名/?channelSource=baidu&shareUserId=6&isMask=1&is_ck=1&shareUserHeadUrl=http://zy-hudian.oss-cn-shenzhen.aliyuncs.com/lease/20211125/c5407d3b39d542598f88413967ddba94.png&shareUserName=%E5%B0%8F%E4%BA%BF%E5%88%9B%E5%AE%A28139

前端编码后是(即后端接收到的参数):

http%3A%2F%2F域名%2F%3FchannelSource%3Dbaidu%26shareUserId%3D6%26isMask%3D1%26is_ck%3D1%26shareUserHeadUrl%3Dhttp%3A%2F%2Fzy-hudian.oss-cn-shenzhen.aliyuncs.com%2Flease%2F20211125%2Fc5407d3b39d542598f88413967ddba94.png%26shareUserName%3D%25E5%25B0%258F%25E4%25BA%25BF%25E5%2588%259B%25E5%25AE%25A28139

后端对当前接收到的编码的url解码,解码用如下方法:

URLDecoder.decode(url, "UTF-8");

解码后就是当前页面原链接,再去参与生成签名,就解决了。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值