You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel 11 API验证错误返回404,如何配置获取JSON响应?

Laravel 11 API验证错误返回JSON配置方案

1. 确保请求携带正确的请求头

客户端发起请求时,必须携带 Accept: application/json 头。Laravel会依据该头自动识别请求类型,返回JSON格式的错误响应;若缺少此头,框架会默认按Web请求处理,触发重定向逻辑。

2. 针对API路由配置异常处理

在 bootstrap/app.php 中,通过异常回调拦截API路由下的验证异常,强制返回JSON响应:

->withExceptions(function (Exceptions $exceptions) {
    $exceptions->render(function (\Illuminate\Validation\ValidationException $e, $request) {
        // 匹配所有API前缀的路由
        if ($request->is('api/*')) {
            return response()->json([
                'message' => '验证失败',
                'errors' => $e->errors()
            ], 422);
        }
    });
})

3. 全局统一验证异常响应格式

若希望所有验证异常(无论是否属于API路由)都返回JSON,可在 App\Providers\AppServiceProvider 的 boot 方法中添加全局处理逻辑:

use Illuminate\Validation\ValidationException;

public function boot()
{
    ValidationException::renderUsing(function ($exception, $request) {
        return response()->json([
            'message' => $exception->getMessage(),
            'errors' => $exception->errors()
        ], $exception->status);
    });
}

如果需要区分Web与API场景,可在回调内通过 $request->wantsJson() 或 $request->is('api/*') 做条件判断。

4. 排查干扰因素

检查项目中是否存在自定义中间件修改了响应格式,或 config/app.php 中异常处理相关配置被篡改,这些都可能导致验证错误时的响应异常。

内容的提问来源于stack exchange,提问作者Čamo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 18:47:03