2011-07-27 11 views
9

मेरे पास जावा स्प्रिंग एमवीसी नियंत्रक है जो अपवाद फेंक सकता है। मेरे पास इन त्रुटियों को संभालने के लिए @ExceptionHandler सेटअप है, और मैं इसे कॉलर को अपवाद का संदेश वापस करने के लिए उपयोग करना चाहता हूं।jQuery .error jqXHR.responseText खाली है

सर्वर कोड है:

@ExceptionHandler(DeviceException.class) 
    @ResponseStatus(HttpStatus.METHOD_FAILURE) 
    @ResponseBody 
    public String handleException(DeviceException ex) { 
     return ex.getMessage(); 
    } 

मैं एक DeviceException फेंकने और CLI से कर्ल का उपयोग कर परिणाम प्राप्त करने का परीक्षण किया है, अपवाद के संदेश को प्रतिक्रिया शरीर में वापस आ जा रहा है। मैं jQuery .त्रुटि हैंडलर लेकिन यह प्रदर्शित करने के लिए नहीं मिल सकता है, मेरे हैंडलर कोड है:

  error: function(jqXHR, textStatus, errorThrown) { 
       // problem, the data is always blank 
       alert('jqXHR.responseText = ', jqXHR.responseText); 
      } 

सभी मैंने कभी responseText के लिए मिलता है एक खाली स्ट्रिंग है। मैं jQuery त्रुटि हैंडलर में प्रदर्शित करने के लिए @ExceptionHandler द्वारा वापस की गई स्ट्रिंग कैसे प्राप्त करूं? इस तरह

+0

में आईआईएस एक्सप्रेस का उपयोग करने के लिए से तय हुई थी मैं नाराज हूं यह बहुत मुश्किल है इस मूल समस्या को ठीक करें, मैं कोई मदद लेता हूं, इससे कोई फर्क नहीं पड़ता कि कितना यादृच्छिक है :) –

+0

मुझे एक ही समस्या है। jqXHR.responseText क्रोम में सेट है लेकिन एफएफ 3.6 नहीं है। मैं 'एप्लिकेशन/एक्स-www-form-urlencoded' पोस्ट कर रहा हूं और 'एप्लिकेशन/जेसन' वापस प्राप्त कर रहा हूं - क्या प्रोटोकॉल तोड़ रहा है? – rynop

+0

क्या आप पूर्ण HTTP प्रतिक्रिया पोस्ट कर सकते हैं? –

उत्तर

0

कोशिश कुछ:

var msg = '<div style="padding:20px;">'; 
msg += "We're sorry, there was an error during your request. Please refresh the page, then try again. If your problem persists, please contact technical support. <br /><br /> <b>Cause:</b> <br /> "; 
switch (textStatus) { 
    case ('timeout'): 
     msg += 'Request timed out.'; 
     break; 
    case ('error'): 
     msg += 'Error status returned.'; 
     break; 
    case ('abort'): 
     msg += 'Request was aborted.'; 
     break; 
    case ('parseerror'): 
     msg += 'There was an error parsing your request.'; 
     break; 
    default: 
     msg += 'No status returned.'; 
     break; 
} 
$(this).html(msg + ' <br /><br /> ' + errorThrown + ' <br /></div>'); 
0

मैं एक बहुत ही इसी तरह के मुद्दे था और अजीब यह है कि परियोजना स्विचन विजुअल स्टूडियो 2012

संबंधित मुद्दे