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

时间:2014-01-20 18:33:55

标签: javascript web dart

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

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

谢谢!

3 个答案:

答案 0 :(得分:6)

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

onError流也将在此时获得进度事件。

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

答案 1 :(得分:1)

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

答案 2 :(得分:-2)

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