2011-12-29 14 views
5

Dla błędów sprawdzania poprawności w Spring MVC Controller, ustawiam niestandardowy nagłówek błąd w nagłówku odpowiedzi. Mogę uzyskać dostęp do nagłówka odpowiedzi w Firefoksie 3.5. Ale nie w IE 8. Uprzejmie proszę o poradę, właściwy sposób wyświetlania niestandardowego komunikatu o błędzie do klienta Jquery.getResponseHeader return null in IE 8

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(); 
    }); 
+0

ja nie wiem, czy to pomoże, ale spróbuj tego: http://forum.jquery.com/topic/jquery-ajax-ie8-problem, to raport o błędzie na jquery $ .ajax w IE8, z pewnymi możliwymi poprawkami. – joao

Odpowiedz

0

Jeśli chcesz wywołać funkcję obsługi błędów JS, wyślij wyjątek na serwerze.

Alternatywnie, można ustawić httpStatus do 500 lub jakiś inny status błędu

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

Ale myślę, że Twoje podejście jest błędne. Błędy sprawdzania poprawności nie są błędami aplikacji, powinieneś obsługiwać te w komunikacie o powodzeniu.

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

To może pomóc: http://outbottle.com/spring-3-web-mvc-exception-handling-incorporating-ajax/