- 项目框架
- React.js + webpack + ES6 + JQuery
- 问题场景
- ajax请求用户数据,服务器返回json格式,数据很可能会比较长,甚至达到几百kb。
- 问题描述
- 客户端ajax请求失败,但并不是每次都失败,有时候又请求正常,chrome报错截图如下:
- chrome检查network的status显示"(failed)",而请求的status code为200
- 问题探索
- 关于这一报错,网上查阅资料发现众说纷纭,也就是说可能出现这一报错的场景是比较多的,其中不乏浏览器设置的因素。
- 再怀疑浏览器设置原因之后,我继续在ie浏览器测试,仍然会报错,但是报错的信息不太一样,这是跟浏览器有关的。
- 后来发现,问题出在服务器返回的json数据是不完整的,客户端无法解析格式错误的json数据,因此报错。也是为什么服务器返回的请求响应码为200而客户端显示(failed)的原因。
- json数据的不完整是有规律的,最大大小为15.2kb左右,也就是说超过这一大小的json数据就会被截断。
- 与后台沟通后,确定为服务器容量不足的原因。
- 问题结论
- 下次在chrome浏览器遇到这个问题的时候,如果同样是ajax请求需要返回较长json数据的情况,并且报错时隐时现,首先检查是否是json数据不完整的原因