如何使用Axios和VueJS捕获所有Laravel API错误?

时间:2019-07-18 16:50:33

标签: laravel vue.js axios sweetalert2

更具体地说,在VueJS运行还是不正确的情况下,如何始终能从Laravel API得到答案?因为如果后端有错误,那么前端就没有答案。

这就是我对Axios,VueJS和sweetalert2的处理方式:

axios.get('/usuarios').then(function(response){
   if(response.data.estatus == 'si'){
      Swal.fire('OK',response.data.mensaje,'success')
   }else{
      Swal.fire('Error',response.data.mensaje,'error')   
   }
})

如果控制器中出现错误,我只能在控制台中看到该错误,如何使用Sweetalert2捕获并正确显示它?

例如:未捕获(承诺)错误:请求失败,状态码为500

1 个答案:

答案 0 :(得分:0)

要捕获laravel中的所有错误,您需要像这样编辑App \ Exceptions \ Handler文件

 public function render($request, Exception $exception)
{
    if ($exception){
        return response()->json([
            'status' => 'failed',
            'error' => $exception->getMessage()
        ]);
   }
    return parent::render($request, $exception); // return json with status => 'success' and 'message' => 'Done!'
}

然后在您的Vuejs项目中轻松地找出后端发生的异常

axios.get('/usuarios').then(function(response){
   if(response.data.status == 'success'){
      Swal.fire('OK',response.data.message,'success') // or call another component
   }else{
      Swal.fire('Error',response.data.error,'error')   
   }
})