【问题标题】:AJAX returns unusual status codesAJAX 返回异常状态码
【发布时间】:2011-11-27 07:09:49
【问题描述】:

所以我终于又开始尝试 AJAX(而不是隐藏的 iframe),现在我想起了我当初为什么这么讨厌 AJAX。

这是一个简单的脚本,用于向服务器查询用户收到的私人消息的数量。服务器以单个数字响应,脚本更新指标并设置超时 5 秒以再次查询。

在极少数情况下(通常是当我 AFK 一段时间后),我开始收到最奇怪的 HTTP 状态代码。

在 Chrome 上:“AJAX 请求未能检索 /ajax/network.php,HTTP 状态 0”
在 IE 上:“AJAX 请求检索 /ajax/network.php 失败,HTTP 状态 12029”

这些代码均无效。这是怎么回事,我怎样才能阻止它发生?

【问题讨论】:

  • 这些错误是可重复的,还是完全随机发生的?

标签: javascript ajax http-status-codes


【解决方案1】:

这是 AJAX 的一个令人讨厌的方面。我发现最好将所有非 200 状态视为错误。实际上,您不会向用户显示与实际结果相关的任何特定错误消息(“发生问题”),因此我根本不会过度担心不一致的错误条件。

jQuery 规范了一些 AJAX 行为,因此您可能还想考虑使用它。

顺便说一下,Chrome中的error 0和IE中的12029表示连接有问题;因为这与 HTTP 无关,所以会显示无效代码。

【讨论】:

  • 好的,我已经在我的 AJAX 函数silent 中添加了一个参数,它会抑制错误消息警报。错误消息对用户启动的操作很有用,但在这个自动更新的事情上它们很烦人。感谢您的回答,在时间允许的情况下接受。
  • 只是给谷歌同事的提示:12029 似乎是断开的连接。参考:stackoverflow.com/questions/872206/…
  • 差不多 4 年后,来自“谷歌同事”的一句“谢谢”。 D**n IE8 @AndrewDunkman
猜你喜欢
  • 2018-04-27
  • 1970-01-01
  • 2021-01-08
  • 2011-01-01
  • 2012-04-20
  • 1970-01-01
  • 1970-01-01
  • 2015-10-28
相关资源
最近更新 更多