1
我有以下方法验证分化执行
private function adminRequired($accessControl)
{
$user = new \CloseCall\ValueObject\User(2);
if(!$accessControl->isAdmin($user)) {
header("location: /auth");
http_response_code(401);
}
}
在我的控制,这种方法总是跑作为控制器构造检查用户是否具有管理员priveleges与否。
我遇到的问题是,XHR请求也可能发送到此控制器,并且header
重定向不适合于此,在这种情况下,我想要发送一个401 http响应回到JavaScript和在那里处理这个响应。
如果我发送一个头重定向然后一个http响应代码,那么当正常执行控制器时,头重定向会被跳过。
如果我发送响应代码,然后标题重定向,那么JavaScript会尝试将XHR传递给我的/ auth控制器。
我的问题是我该如何区分XHR请求和标准执行还是更好呢,请妥善处理?