踩坑系列:获取url中参数时,+号变成空格的问题

 我来答
天罗网17
2022-06-10 · TA获得超过6200个赞
知道小有建树答主
回答量:306
采纳率:100%
帮助的人:73.9万
展开全部

在公司的业务中,有如下的业务场景:
在app端中点击活动banner图,跳转到H5端的活动页面;
若用户已在app中登陆,则在跳转到H5端时,携带一个后台下发的参数(autoLogin),表明用于已在app端登陆;
H5页面获得参数后,通过ajax请求后台,获得用户的账户信息;
在此实现了H5端 自动登陆 的功能。

然而,在测试阶段,我们发现有时候出现自动登陆失败的情况。

根据 前言 中提及到的业务流程,我们一开始怀疑在自动登陆失败时,app未带上表面已登陆的参数(autoLogin)。
通过 Fiddler.exe 抓包,我们发现发生自动登陆失败时,并非是未从url获取到autoLogin参数,而是在H5端ajax请求用户信息时后台报错。

问题都这么明了,此时不怼后台,更待何时

此处省去联调、扯皮、打脸等过程。。。。。。。

我们经过艰苦卓绝的抓包,发现当自动登陆失败时,H5端提交的autoLogin有一个 空格 !!!
然后对比了后台下发给app的autoLogin参数,H5端提交的autoLogin少了个 加号 !!!

当app打开H5页面时,若autoLogin参数携带 加号 ,
由于浏览器 自动编码 url的机制,将 加号 编码成 空格 %20 ,而不是 %2B
导致H5端获取了一个错误的autoLogin参数,导致自动登陆失败。

url中的 空格 会自动编码,但 加号 在某些站点会编码,某些又不会。

这不是第一个坑,也不会是最后一个坑,未完待续......

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式