如果验证失败/成功,Laravel会更改响应标头

时间:2015-09-21 21:05:10

标签: jquery ajax validation laravel httpresponse

如果您的验证失败,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

更新 我使用表单请求而不是基于控制器的验证,但这不应该有所作为。

1 个答案:

答案 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