【发布时间】:2017-09-19 16:16:39
【问题描述】:
在控制器中检查这样的策略:
$this->authorize('user', $post);
在 5.1 的文档中,我们可以阅读:
如果动作被授权,控制器将继续正常执行;但是,如果授权方法确定该操作未授权,则会自动抛出 HttpException 并生成带有 403 Not Authorized 状态码的 HTTP 响应。如您所见,authorize 方法是一种方便、快捷的方式,可以通过一行代码对操作进行授权或引发异常。
好吧,这会引发异常并在此处停止其余代码的执行。问题是这发生在后台,用户不知道发生了什么。 所以我想要做的是在动作授权失败时动态显示一条消息(通过javascript)。我想也许要做到这一点,我必须抓住 laravel 正在抛出的 esception,然后将结果发送到我的 ajax 函数。例如
if ('status' == 403) {
$auth = 0
return Response()->json($auth);
}
然后在我的 ajax 函数中检查 $auth .. 或者有没有办法在授权失败后直接将异常发送到 ajax 函数?
【问题讨论】:
标签: javascript php ajax laravel authorization