2015-06-10 61 views
5

我向Laravel後端發出ajax請求。如何在Laravel中獲取沒有HTML的原始異常消息?

在後端我檢查請求數據並拋出一些異常。 默認情況下,Laravel生成帶有異常消息的html頁面。

我想回應只是原始異常消息不是任何HTML。

->getMessage()不起作用。 Laravel一如既往地生成html。

我該做什麼?

回答

8

在Laravel 5中,您可以通過編輯app/Exceptions/Handler.php中的render方法來捕獲異常。

如果你想趕上例外所有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

是的! 不能在laravel doc中找到它 –

相關問題