某日故障反馈群报某页面极个别用户无法获取数据,遂查。

network返回Provisional headers are shown

p1

查看发现

p2

就是说根本没有拿到接口返回的数据,甚至根本可能没有发成功。

网上查都推荐看chrome://net-internals,那就来看下吧。

老实说一堆东西我看的也是半知不解,但是有几行觉得是关键:

p3

可见发送头部是成功的,问题出在解析那里,read headers时间太长,直接导致cancelled,也就是说,是服务器相应太慢导致异常,那跟我前端应该没啥关系吧。

继续回到页面,15s后取消请求,为什么是15s,因为我的ajax的timeout超时设置了15s,把这个时间延长至5分钟,再看下原因。这次发现后端在2分钟后给我返回504,跟上面的解释对的上了。

后面就是告知后端同学查原因,后端反馈是这个用户名下列表数据量过大,导致查询过慢,直接超时,后面做了优化,已正常使用。

导致Provisional headers are shown其实原因可能多样,比如插件比如被某些扩展如 Adblock 给拦截比如被墙,还是要具体情况具体分析。