在真机的微信浏览器上调试项目嘚时候 发现所有的为什么网络请求失败请求都失败了 。通过调试发现状态码都是0于是从这个状态码开始排查问题。
首先要搞清楚0这个為什么网络请求失败状态码怎么产生的(不是常见的300+200+,400+)如果请求已经成功发出,那么为什么网络请求失败状态码就应该是我们常见嘚200+至500+之所以会产生0这个状态码,是因为xhr对象中的open()方法就出了错误导致send()根本没执行,具体的各个状态码看下表:
-
1 - (载入)已调用send()方法正在發送请求
-
3 - (交互)正在解析响应内容
-
4 - (完成)响应内容解析完成,可以在客户端调用了
由此我们基本可以定位到问题了应该就出现在open()这个部分! 峩们再看下open()需要哪些参数:
一定要仔细检查自己代码的问题,如果为0必然是此处的问题。我就是一度怀疑微信的x5内核导致找了半天问题。最终我的问题是出在了url上 由于接口地址是内网的,导致非内网环境全部报0排查的时候看地址是平常访问的没毛病(没回过来弯 - -!)。又弄了很久才在同事的提醒下恍然大悟