सर्वर साइड उपयोग नहीं कर सकते: स्प्रिंग फ्रेमवर्कस्प्रिंग ResponseEntity और AJAX त्रुटि समारोह: प्रतिक्रिया शरीर सामग्री
मैं एक स्प्रिंग नियंत्रक एक विधि है कि प्रकार ResponseEntity<String>
देता है कि है।
return new ResponseEntity<>(OK_MESSAGE, new HttpHeaders(), HttpStatus.OK);
लेकिन वहाँ निष्पादन या अपवाद को पकड़ने के दौरान किसी भी समस्या होने पर, मैं वापसी:
पूरी तरह से अच्छा अनुरोधों के लिए मैं निम्नलिखित लौट
return new ResponseEntity<>(ERROR_MESSAGE, new HttpHeaders(), HttpStatus.BAD_REQUEST);
कहाँ ERROR_MESSAGE
प्रत्येक के लिए एक अनुकूलित स्ट्रिंग शामिल अपवाद का प्रकार कैच किया गया।
क्लाइंट साइड: AJAX कॉल
POST विधि कहा जाता है और HttpStatus.OK रिटर्न किया जाता है, AJAX
success: function (data, message, xhr)
कहा जाता है और मैं easilly data
एक्सेस करके स्ट्रिंग OK_MESSAGE
उपयोग कर सकते हैं ।
समस्या आता POST विधि का रिटर्न HttpStatus.BAD_REQUEST, AJAX
error: function (xhr, status, errMsg)
कहा जाता है, लेकिन मैं स्ट्रिंग ERROR_MESSAGE
सर्वर है, जो मैं उपयोगकर्ता दिखाने की जरूरत द्वारा भेजे गए उपयोग नहीं कर सकते।
कोई सुझाव?
हाय @charliebrownie आप कर सकते हैं तो कृपया AJAX और नियंत्रक दोनों के कोड पोस्ट करें? – liorsolomon
हाय! मेरी स्प्रिंग कंट्रोलर विधि बिल्कुल ठीक है, एक 'ResponseEntity', जहां स्ट्रिंग वह है 'ERROR_MESSAGE' चर। AJAX कॉल में एकमात्र अंतर यह है कि जब मुझे एक ठीक प्रतिक्रिया मिलती है तो मैं उस 'डेटा' चर में उस स्ट्रिंग तक पहुंच सकता हूं। क्या 'त्रुटि' फ़ंक्शन से इसे एक्सेस करने का कोई तरीका है? –
charliebrownie
यदि आपको कोड की आवश्यकता है तो मैं एक * संपादन * या कुछ कर सकता हूं, लेकिन मुझे आश्चर्य है कि उस स्ट्रिंग तक पहुंचने का कोई तरीका है, मैं 'त्रुटि' फ़ंक्शन से 'ResponseEntity' के अंदर गुजर रहा हूं जो मुझे याद आ रहा है ... क्योंकि AJAX 'सफलता 'फ़ंक्शन से कोई तरीका है। – charliebrownie