我有一个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); }); });
这是很好的工作.但想知道有没有更好的方式这样做?
解决方法@H_403_13@
使用$.ajaxSetup是所有ajax调用的全局.因为$.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);
}
$.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); }