关于javascript:如何判断XMLHttpRequest是否因网络问题而失败?

How do I tell if an XMLHttpRequest failed due to a network issue?

在Web编程(JavaScript,Dart等)中,如何判断我的XMLHttpRequest(aka AJAX)请求是否因网络错误而失败?

我将网络错误定义为DNS,TCP,连接问题等。

谢谢!


在Dartium中,至少在Chrome JS中,您可以通过查看状态为零的readyState == 4("done")来检测故障。
零不是有效的服务器响应,所有HTTP服务器响应都在100以上,因此这意味着它实际上没有到达服务器(或者至少服务器没有说出正确的HTTP)。

此时onError流也将获得progress事件。

在同步模式下,将抛出错误。


通常,AJAX调用的答案带有状态代码和responseText属性,如果您有权访问来自调用的数据,请尝试读取data.status和data.responseText并查看是否正确获取它们(200 是成功,500是内部服务器错误,等等。


你需要检查,响应中返回了什么响应代码,如果该代码返回500,则表示存在服务器问题。