Я хотел бы отловить ошибку и показать соответствующее сообщение, если запрос Ajax не выполняется.
Мой код похож на следующий, но мне не удалось поймать неудачный запрос Ajax.
function getAjaxData(id)
{
$.post("status.ajax.php", {deviceId : id}, function(data){
var tab1;
if (data.length>0) {
tab1 = data;
}
else {
tab1 = "Error in Ajax";
}
return tab1;
});
}
Я обнаружил, что «Ошибка в Ajax» никогда не выполняется при сбое запроса Ajax.
Как я могу обработать ошибку Ajax и показать соответствующее сообщение, если оно терпит неудачу?
jquery
ajax
post
error-handling
TTCG
источник
источник
$.ajax
более читабельным использование хеша для вашегоdata
. Например:{ name : 'John', location: 'Boston' }
$.post().error()
В jQuery 1.5 добавлены отложенные объекты, которые прекрасно справляются с этим. Просто позвоните
$.post
и присоедините любые обработчики, которые вы хотите после вызова. Отложенные объекты даже позволяют подключать несколько обработчиков успеха и ошибок.Пример:
До jQuery 1.8 функция
done
вызываласьsuccess
иfail
вызываласьerror
.источник
responseJSON
свойство, которое также очень удобно в случае типа ajaxjson
.источник
источник
Простой способ - реализовать ajaxError :
Например:
Я бы предложил прочитать документацию по ajaxError . Он делает больше, чем простой пример использования, показанный выше - в основном его обратный вызов принимает ряд параметров:
источник
Вы должны войти в ответный текст:
источник
вы присоединяете обработчик .onerror к объекту ajax, почему люди настаивают на публикации JQuery для ответов, когда vanila работает кроссплатформенно ...
быстрый пример:
источник