Chrome XmlHttpRequest挂起问题

7
每次我通过jQuery的$.ajax向特定URL发起XMLHttpRequest时,Chrome都会停止响应,而请求状态则显示'Pending'。接下来必须强制从任务管理器中关闭Chrome,并且它会表现出一般混乱的迹象,例如Cookie和脚本标签在之前还有正常数据,但现在却为空。
这很奇怪,因为(a) 我的同事运行着看似完全相同的设备和环境,却没有遇到这样的问题; (b) 我使用Chrome运行公司的JavaScript应用程序已经很多个月了,但这突然发生了,原因不明。
我检查了Apache日志,它们似乎以正常的方式处理并完成了请求,但Chrome似乎从未收到答复。
另外需要澄清的是,在失败之前,同样的Chrome和Apache通常会返回大量JS和图像文件,即使问题出现之前也是如此。请求并不特别大(输入输出几百字节),也没有任何明显的复杂性。
如果有人可以给我一些提示,请告诉我,谢谢!

另外需要澄清的是:在故障之前,同样的Chrome和Apache通常会返回大量JS和图像文件,例如,一切似乎都很正常,直到它们不正常。请求并不特别大(几百字节进出),也没有明显的复杂性。 - GregT
谢谢jmort253,你写了这么多真是太好了。 - GregT
这与你的问题有关吗? https://dev59.com/BWgu5IYBdhLWcg3we3Ct - Pedro
请查看以下问题:https://dev59.com/gG035IYBdhLWcg3wKsua#28589598原因可能是由扩展程序或安全软件(例如反病毒软件)引起的。 - Santiago Angel
1个回答

11

我遇到了类似的问题,但症状略有不同。我的ajax请求正常工作,在前6个请求中的每第二个请求都能成功,然后它们全部开始失败(与工作时相同的url、负载等),但在我的情况下它们甚至没有到达服务器,只是在检查器中保持为“待定”状态。

我没有答案可以给你,但为了帮助调试,你尝试过Chrome的net-internals吗?

将您的浏览器指向:

chrome://net-internals/#sockets

和/或

chrome://net-internals/#events

我在 #sockets 中看到我的请求进入了 "active" 状态,但从未回来,在 #events 中我可以看到请求在 HOST_RESOLVER_IMPL_REQUEST 阶段后停顿。

我认为这可能是由于没有正确结束请求而导致的资源问题,但这只是纯粹的猜测。


非常好,非常感谢,我会尝试一下的。我完全不知道这个。顺便说一句,在Chrome支持论坛上,我看到了几个听起来相似的查询,大多数没有得到回答。 - GregT
没问题。对我来说,“请求未正确结束”是原因,而net-internals最终成为了我的调试利器。 - Gene Hallman
4
当我进入chrome://net-internals/#events并转到导致问题的URL时,我看到了这个错误:net_error = -20(ERR_BLOCKED_BY_CLIENT)。事实证明是Adblock Plus引起的问题。现在我只担心如果我的终端用户安装了Adblock Plus,这种情况可能会发生。 - sffc

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接