Как получить сообщение об исключении из неудачного запроса jQuery? - PullRequest
1 голос
/ 28 апреля 2009

Если я использую jQuery ajax с обработчиком ошибок и вызываемое мной действие ASP.NET MVC выдает исключение, я хотел бы иметь возможность отображать сообщение в исключении для пользователя. Прямо сейчас я использую:

 $.ajax( {
    ...
    error: function(request,status,error) {
        var exp = new RegExp('<title>(.*)<\/title>','i');
        if (exp.exec(request.responseText)) {
           alert( RegExp.lastParen );
        }
        else {
           alert( status );
        }
    }
 });

Я надеюсь на каноническую реализацию jQuery, а не на собственную.

Ответы [ 3 ]

3 голосов
/ 28 апреля 2009

Для чего бы то ни было, у меня обычно есть любое действие, которое возвращает JsonResult, завернутый в блок try / catch, чтобы он не мог выбросить исключение. Вместо этого я возвращаю два параметра для каждого массива Json: «ok» (true / false) и «message» (содержащее сообщение, отображаемое пользователю в случае ошибки).

Затем я пропускаю параметр «error» $ .ajax и выполняю простую ветвь для параметра «ok» результата JsonResult.

1 голос
/ 28 апреля 2009

Ничего плохого в том, что вы делаете, но если вам нужны идеи ... как насчет пользовательской страницы ошибок, которая бы сериализировала ошибку как JSON, если запрос имеет заголовок application / json?

0 голосов
/ 28 апреля 2009

Вы ищете что-то проще , чем 5 строк кода? Действительно?

Строка 1, разобрать ошибку. Это настроено для вашего сервера, поэтому я не вижу, как может помочь какое-либо общее средство jQuery.

Строки 2-5, показывают разные ошибки, основанные на разборе. Опять же, это на вашем сервере.

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

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