getResponseHeader возвращает ноль в IE 8 - PullRequest
5 голосов
/ 29 декабря 2011

Для ошибок проверки в Spring MVC Controller я установил пользовательский заголовок error в заголовок ответа. Я могу получить доступ к заголовку ответа в Firefox 3.5. Но не в IE 8. Пожалуйста, посоветуйте мне правильный способ показать пользовательское сообщение об ошибке клиенту 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(); 
     });

1 Ответ

0 голосов
/ 17 сентября 2013

Если вы хотите вызвать функцию обработчика ошибок 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-exception-handling-incorporating-ajax/

...