Как показать исключение .net, выброшенное из вызова jquery ajax? - PullRequest
0 голосов
/ 25 октября 2018

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

Я выполняю ajax-вызов для действия .net MVC и выдается исключение.Как получить сообщение об исключении в функции ошибки вызова ajax?

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

Аналогично, это касается платежей, и я не хочу, чтобы кто-то случайно утвердил заказ, потому что он не смог прочитать документацию (чего не будет ни у кого)во-первых, поскольку это используется внутри компании для малого бизнеса) и думаю, что, поскольку не было выдано никакой ошибки, заказ должен быть успешно обработан.

Сказав это, я просто ищу самый простой из возможных способовполучите свойство Message исключения и отобразите его (само исключение не является пользовательским, но сообщение о нем будет; так что не беспокойтесь о непредвиденных исключениях, сообщающих подробности системы).

РЕДАКТИРОВАТЬ: я понимаюТеперь то, о чем меня просят, невозможно.Тем не менее, я действительно хочу, чтобы

a) Чтобы был выполнен обратный вызов ошибки метода ajax (и, конечно, обратный вызов успеха не должен быть запущен)

b) Чтобы получить доступСообщение об исключении

Обычно исключение отправит обратно 500 ответ.Возможно ли мне изменить ответ, чтобы поместить в него сообщение где-нибудь, к которому можно было бы получить доступ из обратного вызова ошибки?

1 Ответ

0 голосов
/ 25 октября 2018

Вы можете попробовать это: error: function () перехватит исключения

 $.ajax({
    url: '',
    type: "",
    data:'',
    beforeSend:function(){
    },
    success: function (data) {
    },
    error: function (jqXHR, exception) {
    var msg = '';
    if (jqXHR.status === 0) {
        msg = 'Not connect.\n Verify Network.';
    } else if (jqXHR.status == 404) {
        msg = 'Requested page not found. [404]';
    } else if (jqXHR.status == 500) {
        msg = 'Internal Server Error [500].';
    } else if (exception === 'parsererror') {
        msg = 'Requested JSON parse failed.';
    } else if (exception === 'timeout') {
        msg = 'Time out error.';
    } else if (exception === 'abort') {
        msg = 'Ajax request aborted.';
    } else {
        msg = 'Uncaught Error.\n' + jqXHR.responseText;
    }
    console.log(msg);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...