У меня есть код jQuery, в котором я использую, добираются () и называющий некоторый удаленный 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);
});
});
Это хорошо работает. Но хотите знать, там какой-либо лучший способ сделать это?
Использование $ .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, таким образом, что вы можете иметь более конкретные сообщения об ошибках. Но использование глобального обработчика ошибок работает так же хорошо.
Вы можете определить ваши функции за пределами $ (документа). 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);
}