2008-11-04 6 views
3

Я работаю над приложением для полосок, которое использует бит jQuery, чтобы сделать интерфейс более динамичным/полезным.jQuery Ajax error resolution

Я установил разрешение ошибки, поэтому при возникновении ошибки пользователь перенаправляется на страницу error.jsp.

Однако, если во время вызова jQuery Ajax возникает ошибка, вместо перенаправления на страницу error.jsp, я получаю html, напечатанный на странице, где должен был быть результат вызова.

Как передать jQuery для перенаправления, если вместо печати на страницу было выбрано исключение?

Пример нарушившего Ajax:

$.post("SendStatusEmail.action", 
      {status: newstatus, id : id }, 
      function(data) { 
       column.text(data); 
       column.addClass("redfont"); 
       column.parent().fadeOut(3000, function(){column.parent().remove()}); 

ответ

3
$(document).ajaxError(function(event, XMLHttpRequest, ajaxOptions, thrownError) { 
    // redirect here. 
} 

Я хотел бы добавить, что я не перенаправлять когда есть исключение в вызове Ajax. Вместо этого у меня есть сервер, который возвращает описание ошибки в формате JSON и отображает это на странице.

+0

Ну, на самом деле сервер обрабатывает выброшенное исключение, поэтому он переплескивает некоторый html вместо обычного текста, который я ожидал, поэтому jQuery считает, что все прошло нормально. Я предполагаю, что для этого я могу заставить обработчик исключений вернуть код статуса HTTP HTTP или что-то еще? hmm .. – lucas 2008-11-04 17:06:50

4

Как насчет использования $ .ajax() вместо $ .post()? Более общий $ .ajax() предлагает обратный вызов ошибки, который вы можете вызвать в случае ошибки.