Для ошибок проверки в Spring MVC Controller я устанавливаю пользовательский заголовок error в заголовок ответа. Я могу получить доступ к этому заголовку ответа в Firefox 3.5. Но не в IE8. Пожалуйста, посоветуйте мне, как правильно показать пользовательское сообщение об ошибке клиенту Jquery.

    var jqxhr=$.post("saveAcc.htm",{ data: data});

    jqxhr.success(function() { 
        alert("Saved");
    });

    jqxhr.error(function(thrownError){
        fnSetError(jqxhr.getResponseHeader('error'));
        alert(jqxhr.getAllResponseHeaders()); //returns empty
        //alert('responseText '+ thrownError.responseText);
        alert(jqxhr.getResponseHeader('error')); //return null                      
        oTable.fnReloadAjax(); 
     });
5
james007 29 Дек 2011 в 13:49
Я не знаю, поможет ли это, но попробуйте: forum.jquery. com/topic/jquery-ajax-ie8-problem, это отчет об ошибке в jquery $.ajax в IE8 с некоторыми возможными исправлениями.
 – 
joao
13 Сен 2013 в 17:58

1 ответ

Если вы хотите вызвать функцию обработчика ошибок JS, сгенерируйте исключение на сервере.

В качестве альтернативы вы можете установить для HTTPStatus значение 500 или другой статус ошибки.

response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
//response.setStatus(500);

Но я думаю, что ваш подход неверен. Ошибки проверки не являются ошибками приложения, вы должны обрабатывать их в сообщении об успешном завершении.

jqxhr.success(function(data) { 
    if(data['validationMessages'].length > 0 ) {
        //deal with the validation issues
    }
});

Это может помочь: http://outbottle.com/spring- 3-web-mvc-обработка-исключений-включая-ajax/

0
John 17 Сен 2013 в 16:10