Php 防止在Laravel中无效后重定向到主页

Php 防止在Laravel中无效后重定向到主页,php,ajax,laravel,postman,Php,Ajax,Laravel,Postman,我正在用Laravel5.3开发一个RESTfulAPI,所以我正在用我的控制器测试一些函数和请求。我需要做的一件事是在数据库中添加字段之前验证用户发送的请求,因此,我使用自定义FormRequest来验证它 当我在Postman中测试API并发送无效请求时,响应将我重定向到主页。阅读文档后,我发现以下语句 如果验证失败,将生成重定向响应以发送 用户返回到以前的位置。错误也将被刷新 添加到会话中,以便可以显示它们。如果请求是 一个AJAX请求,一个带有422状态码的HTTP响应 返回给用户,包括

我正在用Laravel5.3开发一个RESTfulAPI,所以我正在用我的控制器测试一些函数和请求。我需要做的一件事是在数据库中添加字段之前验证用户发送的请求,因此,我使用自定义FormRequest来验证它

当我在Postman中测试API并发送无效请求时,响应将我重定向到主页。阅读文档后,我发现以下语句

如果验证失败,将生成重定向响应以发送 用户返回到以前的位置。错误也将被刷新 添加到会话中,以便可以显示它们。如果请求是 一个AJAX请求,一个带有422状态码的HTTP响应 返回给用户,包括验证的JSON表示 错误


我怎样才能防止这种情况?或者邮递员中有AJAX模式?有什么建议吗?

我解决了安装此软件包的问题:


这个包使AJAX请求成为我预期的API响应

您的自定义FormRequest扩展了
Lightning\Foundation\Http\FormRequest
。其中有一个执行重定向的函数,名为
response()
。只需在自定义FormRequest中重写此函数,即可更改无效验证的响应方式



这也可以在不重写任何函数的情况下实现。Laravel是为支持
Json
和普通页面而构建的。 请更改
postman
中的设置,并将
Accept
设置为
application/json
,如下所示


拉威尔很聪明;-)

如果这个东西在laravel文档中有记录,你能分享一下这个链接吗?它真的很有用。如果请求不包含任何accept头,我们如何强制它也在apisWow中工作。这对我有用。从来没想过。这就是为什么拉维安全非常棒。
namespace App\Http\Requests;

use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Http\JsonResponse;

class CustomFormRequest extends FormRequest
{
    /**
     * Custom Failed Response
     *
     * Overrides the Illuminate\Foundation\Http\FormRequest
     * response function to stop it from auto redirecting
     * and applies a API custom response format.
     *
     * @param array $errors
     * @return JsonResponse
     */
    public function response(array $errors) {

        // Put whatever response you want here.
        return new JsonResponse([
            'status' => '422',
            'errors' => $errors,
        ], 422);
    }
}