Laravel 8 ajax请求验证如何强制json响应?

Laravel 8 ajax request validation how to force json response?

提问人:Čamo 提问时间:8/25/2023 更新时间:9/7/2023 访问量:35

问:

我的 Laravel 8 API 中有一个验证,用于验证来自相机的输入。相机无法发送任何标头,这将说它接受 application/json。所以 Laravel 在错误而不是 json 中的错误时向我发送 302 重定向响应。有没有办法强制 Laravel 发送 json 响应而不是在验证错误时重定向?谢谢你的帮助。

php json 验证 重定向 laravel-8

评论

1赞 Vincent Decaux 8/25/2023
这回答了你的问题吗?如何在 Laravel 中的每个响应上强制执行 JSON 响应?

答:

0赞 JDarwind 8/25/2023 #1

是的,您可以在路由中应用中间件以设置所需的标头。

为了完成此任务,您需要使用以下命令创建一个中间件:.php artisan make:middleware SetJsonContentType

注意:替换为您喜欢的任何名称。SetJsonContentType

该文件将在目录下生成。app/Http/Middleware

在中间件的 handle 方法中,需要插入以下代码:


   $request->headers->set('Accept', 'application/json');
   return $next($request);

在此之后,您需要在请求中使用中间件。 为此,您需要将中间件添加到 app/Http/Kernel.php 文件的 Web 部分。 您将以这样的内容结束:SetJsonContentType


protected $middlewareGroups = [
    'api' => [
        \App\Http\Middleware\SetJsonHeader::class,
       //other middleware
    ],

    'web' => [
        // ...
    ],
];

我希望这对你有所帮助。

评论

0赞 OMi Shah 8/26/2023
请不要写重复的答案,因为这个重复的问题已经回答过了。