从 Laravel 发送自定义 500 http 响应

Posted

技术标签:

【中文标题】从 Laravel 发送自定义 500 http 响应【英文标题】:Send custom 500 http response from Laravel 【发布时间】:2019-05-01 11:05:48 【问题描述】:

我想发送一个状态为 500 的自定义 http 响应。 尝试了以下代码,但它返回的状态为 200。

return response()
            ->json([
                'code'      =>  500,
                 'message'   =>  'custom error'
            ], 500);

如何从 laravel 控制器发送 http 状态 500?

【问题讨论】:

Laravel - Return json along with http status code的可能重复 我认为你在这里遗漏了一些东西(你的代码工作正常) 【参考方案1】:

试试这个。

return abort(500, 'custom error');

更多信息:

https://laravel.com/docs/5.7/errors#http-exceptions

希望对你有帮助

更新

那就试试这个

return response()->json(['message' => 'error message'], 500);

这将发送 500 状态码而不是 200

更多信息:

https://laravel.com/api/5.7/Illuminate/Contracts/Routing/ResponseFactory.html#method_json

希望对您有所帮助。

【讨论】:

AFAIK,abort 实际上呈现刀片模板,而不是 JSON,这对 OP 有用吗? 我相信你需要调用response作为一个函数:return response()->...

以上是关于从 Laravel 发送自定义 500 http 响应的主要内容,如果未能解决你的问题,请参考以下文章

使用SwiftMessage从回复电子邮件中获取Laravel中的自定义标头

使用 smtp 服务器发送自定义电子邮件地址时 Laravel 错误

使用 Laravel 的 Mailgun 驱动程序,你如何(优雅地)通过电子邮件发送自定义数据和标签?

Laravel 5.3 个人访问令牌 500

我们可以创建自定义 HTTP 状态代码吗?

如何在 Spring Boot 中发送 400、401、405、403 和 500 错误的自定义响应?