检测 Ajax 请求在 JavaScript 中是否失败
Detect if Ajax Request had failed in JavaScript
如何检测 Ajax 请求是否加载文件失败。
这是我的代码供参考:
var pro = undefined;
var xmlhttp;
if (window.XMLHttpRequest){
xmlhttp = new XMLHttpRequest();
}
else{
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function(){
if (xmlhttp.readyState==4 && xmlhttp.status==200){
pro = JSON.parse(xmlhttp.responseText);
}
}
xmlhttp.open("GET","data.json",true);
xmlhttp.send();
拜托,没有jQuery。
谢谢!
您可以检查HTTP状态是500还是大于500,这意味着请求 http://en.wikipedia.org/wiki/List_of_HTTP_status_codes#5xx_Server_Error 中发生了错误
if (xmlhttp.status >= 500){
alert('error');
}
注意:您还可以根据需要考虑其他http状态号码
onerror
回调应该用于处理错误,如下所示:
xmlhttp.onerror = function onError(e) {
alert("Error " + e.target.status + " occurred while receiving the document.");
}
据我所知,jQuery库也使用这种方法。不确定哪些浏览器都支持此功能,但这肯定适用于 Firefox。
我所做的是使用一个全局变量,我命名为"回旋镖"(我知道很机智)
因此,当您发送请求时,使回旋镖= 1,然后在成功时使回旋镖= 0
然后在发送请求后的某个适当时间,您可以检查回旋镖是 =1 还是 =0
您需要检查状态代码 - 4xx 和 5xx 代码是错误。
以下是代码列表: http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html
你不需要更多。在 else 子句中执行注释以外的操作。
xmlhttp.onreadystatechange = function(){
if (xmlhttp.readyState==4 && xmlhttp.status==200){
pro = JSON.parse(xmlhttp.responseText);
} else {
if (xmlhttp.readyState==4) {
// Something failed
}
}
}
相关文章:
- 客户端如何知道发射是否失败?socket.emit()有回调吗
- 如何知道向iframe提交表单和文件是否失败
- 如何检查<对象>是否加载失败
- 加载远程 JavaScript 文件失败是否会停止在任何浏览器中执行 JavaScript
- 确定 .always 函数中的 AJAX 调用是否失败
- 检查 ajax 请求是否在大多数情况下失败
- 如何检测数据批注验证是否失败
- 如何在共享点 spservice 中保存数据时检查验证是否失败
- 如何检查外部javascript是否加载失败
- ios:如何检测自定义url方案链接是否失败
- 如何检测window.location是否失败
- 完全相同javascript的第二次动态加载中的失败是否会盖过第一次成功加载
- 通过隐藏的iframe下载文件-如何判断下载是否完成/失败/中止
- 如何用ajax以小块形式上传文件并检查是否失败,重新上传失败的部分
- JavaScript:失败的图像请求是否有error属性
- 如何判断Chrome扩展的异步JavaScript函数是否失败
- 当服务器发送HTML而不是图像数据时,是否有可能捕获失败的IMG加载?
- JavaScript是否承诺.都有一个回调,当有成功和失败时触发
- 测试Jasmine测试是否失败
- 检测 Ajax 请求在 JavaScript 中是否失败