Skip to content

Latest commit

 

History

History
23 lines (14 loc) · 1.61 KB

踩坑一:微信浏览器不发起重定向的请求.md

File metadata and controls

23 lines (14 loc) · 1.61 KB

发现问题

用了近一个月的微信登录功能,突然间不能用了。经验证,ios手机没问题,测试了6部安卓手机,3部有问题而另外3部没问题,其中各有一部华为Mate9。

猜测引发原因

猜测是微信最近更新版本6.6.7造成的,因为用了近一个月时间都没问题,并且此次微信更新带来的改动不小。但是,在有问题的手机上,用豌豆荚安装了上一版本的微信,问题依旧存在,猜测不成立。然而,经过上次的一个奇葩问题,猜测还是有可能正确的,因为经过一次程序错误后,可能这个运行环境就回不到原来的样子了。是的!就是这么坑!

验证问题

流程是这样: 微信浏览器访问地址A,然后手动点击按钮触发跳转到自家服务器的一个get方法B,再由方法B重定向到微信服务器的一个接口C,C会再重定向到自家服务器的另一个get接口D,最后由D再重定向到最终地址E 结论: 只要最后的地址E与最初的地址A相同,则微信浏览器不会发出最终重定向的请求。

解决方法

解决的方法就是给地址添加无意义参数,保证最初地址与最终地址不同。

如果使用了vue-router的hash模式,则在hash部分添加参数并无效,要在#前面添加参数,这样不影响原有逻辑,如:

const url = 'https://test.com/?aaa=666#/hello?world=123' // 初始地址,参数为666
const redirect = 'https://test.com/?aaa=888#/hello?world=123' // 最终重定向地址,参数改为888