我在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';
但它会阻止页面重新加载。我不希望那样。
请帮忙!