如果您的验证失败,Laravel有这个很好的功能来返回JSON。
http://laravel.com/docs/5.0/validation#controller-validation
不幸的是,响应标头设置为客户端,如下所示。似乎Laravel会考虑成功验证并以某种方式将响应头更改为HTML。但是,我没有在任何地方看到这个记录。有人有线索吗?
$.ajax({
dataType: "JSON",
error: function(error){ //422 response, validation errors go here
success: function(response) { //if validation successful
更新 我使用表单请求而不是基于控制器的验证,但这不应该有所作为。
答案 0 :(得分:1)
使用laravel,您可以通过Laravel更改发送给客户端的响应标头。
在控制器的5.1中,你可以发送你想要的响应头,然后为它们提供不同的实现。
return response()->json(['message'=>'Error Encountered'],422);
这会向您的客户端发送422错误。第二个论点,您可以设置不同的http代码,具体取决于您传递给客户端的内容。 看看该功能在
接受的内容http://laravel.com/api/5.1/Illuminate/Contracts/Routing/ResponseFactory.html#method_json
laravel 5.0也是如此
http://laravel.com/api/5.0/Illuminate/Contracts/Routing/ResponseFactory.html#method_json
对于验证后的重定向,您可以像这样附加标题
return Redirect::back()->header('Cache-Control', 'no-store');
http://laravel.com/api/5.0/Illuminate/Http/ResponseTrait.html#method_header