jQuery.получить функцию ответа на ошибку?
благодаря StackOverflow мне удалось получить следующий код, работающий отлично, но у меня есть следующий вопрос.
$.get('http://example.com/page/2/', function(data){
$(data).find('#reviews .card').appendTo('#reviews');
});
этот код выше позволил моему сайту получить вторую страницу статей с кнопкой загрузить больше в WordPress. Однако, когда на сайте заканчиваются страницы / результаты, я сталкиваюсь с небольшой проблемой. Кнопка загрузить больше остается на месте. Он будет продолжать пытаться получить данные, даже если не осталось страниц.
как я могу настроить эту команду, чтобы я может показать визуальный ответ, если .get
запрос не выполняется или, например, не найдена страница (404)?
Если кто-то может помочь мне с простой пример даже alert("woops!");
это было бы здорово!
спасибо!
3 ответа:
$.get
не дает вам возможность установить обработчик ошибок. Вам нужно будет использовать низкий уровень$.ajax
:$.ajax({ url: 'http://example.com/page/2/', type: 'GET', success: function(data){ $(data).find('#reviews .card').appendTo('#reviews'); }, error: function(data) { alert('woops!'); //or whatever } });
Редактировать Марта ' 10
обратите внимание, что с нового
jqXHR
если вы хотите общую ошибку, вы можете настроить все
$.ajax()
(где$.get()
использует под) запросов jQuery делает, чтобы отобразить сообщение об ошибке, используя$.ajaxSetup()
, например:$.ajaxSetup({ error: function(xhr, status, error) { alert("An AJAX error occured: " + status + "\nError: " + error); } });
просто запустите это один раз, прежде чем делать какие-либо вызовы AJAX (никаких изменений в текущем коде, просто вставьте это раньше где-нибудь). Это устанавливает до по умолчанию к обработчику / функции выше, если вы сделали полный
$.ajax()
позвоните и укажитеerror
обработчик то, что у вас было бы переопределить выше.