场景:微信小程序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抓包 教程很多