Как сервер asp.net (mvc) должен возвращать ошибку при вызове jquery ajax, чтобы быть пойманным при обратном вызове ошибки? - PullRequest
26 голосов
/ 19 мая 2009

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

Что делать, если произошла ошибка? Я хотел бы указать его соответствующим кодом состояния, чтобы мой вызов с ошибкой был вызван. Почему код статуса? Читайте здесь: Как вызвать обратный вызов «error» в вызове jQuery AJAX с использованием ASP.NET MVC?

Однако этот подход не работает, поскольку IIS7 возвращает свое собственное сообщение (неверный запрос) вместо моего пользовательского сообщения об ошибке.

Кроме того, есть два других улова:

  1. Он также должен работать с IIS6
  2. IE8 не возвращает строку 'Bad request'. Внутри обратного вызова ошибки свойство request.responseTest имеет значение null.

Ошибка обратного вызова может выглядеть следующим образом: ошибка: функция (запрос) {alert (request.responseText);}

1 Ответ

30 голосов
/ 19 мая 2009

Установка Response.StatusCode - правильная вещь. Чтобы исправить «полезную» обработку ошибок IIS, установите свойство HttpResponse.TrySkipIisCustomErrors . Вы можете прочитать больше об этом здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...