Подтвердить что ты не робот

Как должен сервер asp.net(mvc) возвращать ошибку при вызове jquery ajax, чтобы попасть в обратный вызов ошибки?

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

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

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

Кроме того, есть еще две уловы:

  • Он также должен работать с IIS6
  • IE8 не возвращает строку "Плохой запрос". Внутри обратного вызова ошибки свойство request.responseTest имеет значение null.

Обратный вызов ошибки может выглядеть так: error: function (request) {alert (request.responseText);}

4b9b3361

Ответ 1

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