Symfony2 Jquery数据表会话到期后Ajax身份验证失败

时间:2016-08-12 08:35:07

标签: jquery ajax symfony datatables

我在Symfony项目中使用Jquery Datatables。下面是我的代码,用于在用户的会话到期并且用户尝试请求在Jquery Datatable中加载的数据时处理异常。

class AjaxAuthenticationListener
{
    /**
     * Handles security related exceptions.
     *
     * @param GetResponseForExceptionEvent $event An GetResponseForExceptionEvent instance
     */
    public function onCoreException(GetResponseForExceptionEvent $event)
    {
        $exception = $event->getException();
        $request = $event->getRequest();

        if ($request->isXmlHttpRequest()) {
            if ($exception instanceof AuthenticationException || $exception instanceof AccessDeniedException) {
                $event->setResponse(new Response('', 403));
            }
        }
    }
}

然后在我的js文件中

$(document).ajaxError(function (event, jqXHR) {
        if (403 === jqXHR.status) {
            window.location.reload();
        }
    });

除了" 403响应"作为对Datatables的响应返回,它会发出警报。

DataTables warning: table id=jq-datatables - Ajax error. For more information about this error, please see http://datatables.net/tn/7

当我点击此警报时,页面会重新加载。但有没有办法让我在控制台和页面静默地重新加载这个错误?

我已经使用过这段代码

$.fn.dataTableExt.sErrMode = 'throw';

但它会阻止页面重新加载。我不希望那样。

请帮忙!

0 个答案:

没有答案