2011-12-29 28 views
5

Đối với lỗi xác thực trong Bộ điều khiển MVC mùa xuân, tôi đặt tiêu đề tùy chỉnh lỗi cho tiêu đề phản hồi. Tôi có thể truy cập Tiêu đề phản hồi đó trong Firefox 3.5. Nhưng không phải trong IE 8. Vui lòng tư vấn cho tôi, đúng cách để hiển thị thông báo lỗi tùy chỉnh cho ứng dụng khách Jquery.getResponseHeader trả về null trong 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

Tôi không biết nếu điều này sẽ giúp, nhưng cung cấp cho một thử này: http://forum.jquery.com/topic/jquery-ajax-ie8-problem, đây một báo cáo lỗi trên jquery $ .ajax trong IE8, với một số sửa lỗi có thể. – joao

Trả lời

0

Nếu bạn muốn gọi hàm xử lý lỗi JS, hãy ném ngoại lệ trên máy chủ.

Ngoài ra, bạn có thể thiết lập HTTPStatus đến 500 hay một số trạng thái lỗi khác

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

Nhưng tôi nghĩ rằng cách tiếp cận của bạn là sai. Lỗi xác thực không phải là lỗi ứng dụng, bạn nên xử lý các lỗi đó trong thông báo thành công.

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

này có thể giúp: http://outbottle.com/spring-3-web-mvc-exception-handling-incorporating-ajax/