2011-12-29 19 views
5

स्प्रिंग एमवीसी नियंत्रक में सत्यापन त्रुटियों के लिए getResponseHeader वापसी शून्य, मैं हेडर प्रतिक्रिया के लिए कस्टम हेडर त्रुटि सेट करता हूं। मैं फ़ायरफ़ॉक्स 3.5 में उस प्रतिक्रिया हेडर तक पहुंचने में सक्षम हो सकता हूं। लेकिन नहीं आईई 8 में कृपया मुझे सही तरीके से jQuery के ग्राहक के लिए कस्टम त्रुटि संदेश प्रदर्शित करने के लिए सलाह,।आईई 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

अगर यह मदद करता है मैं नहीं जानता, लेकिन इस आजमाइए: http://forum.jquery.com/topic/jquery-ajax-ie8-problem, इस कुछ संभावित सुधारों के साथ, IE8 में jquery $ .ajax पर एक बग रिपोर्ट। – joao

उत्तर

0

यदि आप जेएस त्रुटि हैंडलर फ़ंक्शन का आह्वान करना चाहते हैं, तो सर्वर पर अपवाद फेंक दें।

वैकल्पिक रूप से, आप 500 HTTPStatus या कुछ अन्य त्रुटि स्थिति

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/