Я работаю над веб-приложением Symfony 2.8, в этом приложении мне нужно вернуть 403 json-ответ на запрос ajax, даже если пользователь не вошел в систему, а перенаправил. Чтобы решить эту проблему, я использовал Listener:
class AccessDeniedListener {
public function onAccessDeniedException(GetResponseForExceptionEvent $event) {
if ($event->getException()->getCode() === 403
&& $event->getRequest()->isXmlHttpRequest()) {
$event->setResponse(new JsonResponse(['foo' => 'bar']), 403);
$event->stopPropagation();
}
}
}
и установите приоритет выше значения по умолчанию ExceptionListener
, он работает нормально, но когда я делаю AJAX-запрос, я получаю ожидаемое содержимое, но не statusCode (вместо 500)
$.get('http://localhost/web/app_dev.php/test').fail(function( jqXHR, textStatus ) {
console.log(jqXHR.status); //returns 500
});
Итак, мой вопрос ... Я делаю что-то не так или я что-то упустил ... спасибо.