2015-06-10 4 views
5

मैं लार्वा बैकएंड को AJAX अनुरोध करता हूं।लार्वेल में एचटीएमएल के बिना कच्चे अपवाद संदेश कैसे प्राप्त करें?

बैकएंड में मैं अनुरोध डेटा जांचता हूं और कुछ अपवाद फेंक देता हूं। डिफ़ॉल्ट रूप से लैरावेल, अपवाद संदेशों के साथ HTML पृष्ठ जेनरेट करता है।

मैं सिर्फ कच्चे अपवाद संदेश का जवाब देना चाहता हूं, कोई भी HTML नहीं।

->getMessage() काम नहीं करता है। हमेशा के रूप में Laravel, एचटीएमएल उत्पन्न करते हैं।

मुझे क्या लगता है?

उत्तर

8

लार्वेल 5 में आप render विधि app/Exceptions/Handler.php में संपादित करके अपवादों को पकड़ सकते हैं।

आप सभी AJAX अनुरोध आप यह कर सकते हैं के लिए अपवाद को पकड़ने के लिए चाहते हैं:

public function render($request, Exception $e) 
{ 
    if ($request->ajax()) { 
     return response()->json(['message' => $e->getMessage()]); 
    } 

    return parent::render($request, $e); 
} 

यह AJAX अनुरोध में किसी भी अपवाद को लागू किया जाएगा। यदि आपका ऐप App\Exceptions\MyOwnException का अपवाद भेज रहा है, तो आप इसके बजाय उस उदाहरण की जांच करें।

public function render($request, Exception $e) 
{ 
    if ($e instanceof \App\Exceptions\MyOwnException) { 
     return response()->json(['message' => $e->getMessage()]); 
    } 

    return parent::render($request, $e); 
} 
+0

अच्छा। लेकिन त्रुटि के साथ प्रतिक्रिया कैसे प्रतिक्रिया? मैं AJAX त्रुटि फ़ंक्शन के माध्यम से प्रतिक्रिया प्राप्त करना चाहता हूं। –

+0

@KamilDavudov आप विशिष्ट HTTP कोड के साथ प्रतिक्रिया का मतलब है? –

+0

हां! इसे लार्वाल डॉक –

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