iOS微信小程序网页请求走error问题

本文探讨了在iOS微信环境中,webview下HTTP请求自动转换为HTTPS导致的AJAX请求失败问题。通过抓包分析,指出了解决方案:将所有接口更改为HTTPS,确保在iOS微信上正常工作。

场景:微信小程序webview外链网页

 

在Android微信网页 浏览器 iOS浏览器都是好的 但是一到iOS微信就出问题了

 

请求一直发不出去 ajax 错误码一直报 0

 

0:请求未初始化(还没有调用 open())。

1:请求已经建立,但是还没有发送(还没有调用 send())。

2:请求已发送,正在处理中(通常现在可以从响应中获取内容头)。

3:请求在处理中;通常响应中已有部分数据可用了,但是服务器还没有完成响应的生成。

4:响应已完成;您可以获取并使用服务器的响应了。

 

后来抓包检查发现:

iOS微信网页请求会自动变成https

http请求都直接变成https了 ajax就会一直走error方法 state:0

 

解决方法:

把接口全改成https就可以兼容iOS微信网页了(后端)

 

这里难点在于iOS微信网页抓包

由于ajax请求发不出去,无法抓到数据包

我们就随便填写一个url,让数据包发出去,让fiddler拦截到然后分析就可以发现问题

 

还有就是无法真机抓包的问题

我尝试过使用真机微信小程序网页抓包,结果页面无法加载出来(可能有代理检测)

后来用微信web开发工具就可以抓到包,这里选择的是小程序模式

 

如果要用公众号网页抓包记得把http改成https(不改会直接请求成功,看不到错误原因了,改了之后很有可能看到https和http跨域问题)

 

然后点击 设置 代理设置 手动 填写地址和端口号就可以了

关于抓包可以搜索 fiddler抓包 教程很多

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值