2016-04-27 109 views
0

我正在使用laravel 5.2的formrequest文件来检查输入。这种形式我打电话使用jQuery的$ .post函数。在我的控制台,它是返回422不可处理的实体,我怀疑是来自响应,因为我没有格式化为json。一种做法is this如何在使用表单请求时使用laravel捕获验证失败

我想知道如何从我的表单请求中调用,将输出消息更改为json的方法。

谢谢!

更新1

JQuery的是这样的:

$.ajaxSetup({ 
    headers: { 
     'X-CSRF-TOKEN': $('input[name="csrf-token"]').val() 
    } 
}); 

$("#changePassword").on('click', function(e){ 
    e.preventDefault(); 

    var data = {}; 
    data.name = $("input[name='name']").val(); 
    data.surname = $("input[name='surname']").val(); 
    data._token = $('input[name="_token"]').val(); 

    $.post('url',data).done(function(data){ 
     $(".message").empty().html("Done!"); 
    }).fail(
     function(response, status){ 

     } 
    ); 
}); 
+0

你能张贴代码为你'$ .post'部分? –

回答

2

覆盖的响应方法在你的请求类如下面

/** 
    * Get the proper failed validation response for the request. 
    * 
    * @param array $errors 
    * @return \Symfony\Component\HttpFoundation\Response 
    */ 
    public function response(array $errors) 
    { 
     return Response::json([ 
      'error' => [ 
       'message' => $errors, 
      ] 
     ]); 
    } 
+0

正确的做法我结束了实现它: return response() - > json([]); – Chiko