AJAX返回异常状态代码

Nie*_*sol 5 javascript ajax http-status-codes

所以我终于再次尝试了AJAX(而不是隐藏的iframe),我现在还记得为什么我一开始就非常讨厌AJAX.

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

在极少数情况下(通常当我去AFK一段时间),我开始获得最奇怪的HTTP状态代码.

在Chrome上:"AJAX请求无法检索/ajax/network.php,HTTP状态0"
在IE上:"AJAX请求无法检索/ajax/network.php,HTTP状态12029"

这些代码都不是有效的.这里发生了什么,我怎么能阻止它发生?

Jac*_*cob 6

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

jQuery规范化了一些AJAX行为,因此您可能还想研究使用它.

顺便说一句,Chrome中的错误0和IE中的12029表示连接问题; 因为这与HTTP无关,这就是显示无效代码的原因.

  • 对于其他googlers来说只是一个注意事项:12029似乎是一个掉线连接.参考:http://stackoverflow.com/questions/872206/http-status-code-0-what-does-this-mean-in-ms-xmlhttp/905751#905751 (3认同)