2009-04-15 21 views
40

Я использую метод jQuery .load() для извлечения некоторых данных, когда пользователь нажимает кнопку.Как поймать ошибку в методе load() jQuery

После успешного завершения загрузки, я показываю результат в <div>.

Проблема в том, что иногда возникает ошибка в load() при извлечении данных.

Как я могу поймать ошибку в load()?

ответ

5

load() предлагает обратный вызов.

Обратный звонок.
Функция, вызванная при завершении запроса ajax (не обязательно успех).

Вот как это делается IIRC. (Не проверяли)

$("#feeds").load("feeds.php", {limit: 25}, 
    function (responseText, textStatus, XMLHttpRequest) { 
     // XMLHttpRequest.responseText has the error info you want. 
     alert(XMLHttpRequest.responseText); 
}); 
+7

Первый аргумент функции IS responseText. Не нужно использовать XMLHttpRequest.responseText ... –

10

Помимо прохождения обратного вызова функции нагрузки(), как следует Олафур Waage, вы можете также зарегистрировать «глобальные» обработчик ошибок (глобальным, как в глобальном для всех Ajax вызовов на странице).

Есть по крайней мере два способа регистрации глобальных обработчиков ошибок Ajax:

Регистрация только обработчик ошибок с ajaxError():

$.ajaxError(function(event, request, settings) { 
     alert("Oops!!"); 
}); 

Или используйте ajaxSetup() настроить обработчик ошибок и другие свойства в в то же время:

$.ajaxSetup({ 
    timeout: 5000, 
    error: function(event, request, settings){ 
     alert("Oops!"); 
    } 
}); 
66

load() documentation.

Просто немного предыстории о том, как происходит ошибка загрузки ...

$("body").load("/someotherpath/feedsx.pxhp", {limit: 25}, 
    function (responseText, textStatus, req) { 
     if (textStatus == "error") { 
      return "oh noes!!!!"; 
     } 
}); 

Edit: Добавлен путь, отличный от корневого пути в соответствии с просьбой комментариями.

+0

спасибо altCongnito.it - ​​это работа! Кстати, могу я задать другой родственный вопрос? Другая проблема - путь к файлу! Я использую asp.net. i напишите load() код на главной странице. Параметр Url подобен feedsx.aspx. Это работа, когда страницы содержимого находятся под корневой папкой. Но если страницы содержимого находятся под другой подпапкой, они не работают. help –

+0

спасибо за ссылку на документы jquery. Я не знал, что они даже существуют! –

+0

Ошибки с благодарностью в основном связаны с проблемой при загрузке целевой страницы. – Resh32

0

На электроинструментах есть статья под названием "Loading content with jQuery AJAX and dealing with failures", которая, как представляется, ответит на ваш вопрос.

Очевидно, что функция обратного вызова, которую вы указываете, получает ответ, статус и объект XmlHttpRequest, что позволяет вам определить статус вашего запроса ajax и соответствующим образом обработать условие.

Смежные вопросы