我有一个jQuery代码,在其中我使用get()并调用一些远程URL /文件。现在,我想知道处理错误的最佳方法是什么。
我正在做的是:
$(document).ready(function() {
$.ajaxSetup({
error: function(x, e) {
if (x.status == 0) {
alert(' Check Your Network.');
}
else if (x.status == 404) {
alert('Requested URL not found.');
} else if (x.status == 500) {
alert('Internel Server Error.');
} else {
alert('Unknow Error.\n' + x.responseText);
}
}
});
$.get("HTMLPage.htm", function(data) {
alert(data);
$('#mydiv').html(data);
});
});
这很好,但是想知道是否有更好的方法吗?
对于所有ajax调用,使用$ .ajaxSetup是全局的。由于$ .get函数没有任何错误回调,因此在$ .ajaxSetup中定义错误处理程序是处理错误的唯一方法。如果使用$ .ajax,则可以在$ .ajax调用中定义错误处理程序,如下所示
$.ajax({
url: "HTMLPage.htm",
success: function(data) {
alert(data);
$('#mydiv').html(data);
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
if (XMLHttpRequest.status == 0) {
alert(' Check Your Network.');
} else if (XMLHttpRequest.status == 404) {
alert('Requested URL not found.');
} else if (XMLHttpRequest.status == 500) {
alert('Internel Server Error.');
} else {
alert('Unknow Error.\n' + XMLHttpRequest.responseText);
}
}
});
这仅适用于此ajax调用,这样您可以拥有更多特定的错误消息。但是使用全局错误处理程序也可以。
您可以像这样在$(document).ready()之外定义函数
$(document).ready(function() {
$.ajaxSetup({
error: AjaxError
});
$.get("HTMLPage.htm", GetSuccess);
});
function AjaxError(x, e) {
if (x.status == 0) {
alert(' Check Your Network.');
} else if (x.status == 404) {
alert('Requested URL not found.');
} else if (x.status == 500) {
alert('Internel Server Error.');
} else {
alert('Unknow Error.\n' + x.responseText);
}
}
function GetSuccess(data) {
alert(data);
$('#mydiv').html(data);
}
从jQuery 1.5开始,所有jQuery的Ajax方法都返回XMLHTTPRequest对象的超集。$ .get()返回的此jQuery XHR对象或“ jqXHR”实现Promise接口,为其提供Promise的所有属性,方法和行为。
var jqxhr = $.get( "example.php", function() {
alert( "success" );
})
.done(function() {
alert( "second success" );
})
.fail(function() {
alert( "error" );
})
.always(function() {
alert( "finished" );
});
从http://api.jquery.com/jQuery.ajax/复制/粘贴:
statusCode(已添加1.5){}
响应具有相应代码时将调用的数字HTTP代码和函数的映射。例如,以下内容将在响应状态为404时发出警报:
$.ajax({ statusCode: {404: function() { alert('page not found'); } });
如果请求成功,则状态码函数采用与成功回调相同的参数;如果导致错误,则它们将使用与错误回调相同的参数。
本文地址:http://jquery.askforanswer.com/ruhechuli-getzhongdecuowu.html
文章标签:ajax , jquery
版权声明:本文为原创文章,版权归 admin 所有,欢迎分享本文,转载请保留出处!
文章标签:ajax , jquery
版权声明:本文为原创文章,版权归 admin 所有,欢迎分享本文,转载请保留出处!
评论已关闭!