Laravel 5.2 在中止时将 Http 响应状态码设置为 403

Posted

技术标签:

【中文标题】Laravel 5.2 在中止时将 Http 响应状态码设置为 403【英文标题】:Laravel 5.2 set Http response status code to 403 on abort 【发布时间】:2016-11-21 16:39:53 【问题描述】:

我编写了 RESTful API,我想在我的代码中每个需要的地方使用函数 abort(403, 'Unauthorized action.');,但是由 abort 生成的响应总是状态码 200! (我真的希望拥有状态 = 403)。怎么做?

【问题讨论】:

尝试使用return response($content = 'Unauthorized Action', $status = 403, $headers = array()) 【参考方案1】:

如果您想自定义发回的内容,您希望返回 response()

类似下面的东西应该可以解决问题:

return response('Unauthorized action.', 403);

你可以把它放在你目前拥有的地方:

abort(403, 'Unauthorized action.');

【讨论】:

不 - 这不一样 - 如果我在嵌套函数内的某个地方放置“返回”,我必须将结果传递给调用者(函数)并且调用函数必须再次返回它。另一方面 - abort 像“抛出异常”一样工作,所以我不需要返回任何东西。这就是我要找的。​​span> 我不知道我改变了什么,但它开始工作了! (?)我通过直接在routes.php 中使用abort(403,'test') 开始inwestigaton 并在测试之后......它开始工作......

以上是关于Laravel 5.2 在中止时将 Http 响应状态码设置为 403的主要内容,如果未能解决你的问题,请参考以下文章

处理来自 PHPUnit (Laravel 5.2) 的自定义异常

Laravel 5.2:邮件没有从cron-job发送,从邮件响应中收到错误

如何在laravel 5.2中控制多个ajax请求

采摘渴望加载Laravel 5.2

在 Laravel 5.2 中找不到类“App\Http\Controllers\Session”[重复]

允许用户在 laravel 5.2 中进行登录后调用