我有一个EventSubscriber
,它在传递给操作之前先检查数据。
在此类中,我使用一种方法来验证所请求的路由是否正确。该测试基于Session
($session['recordStatus']
)中变量的值。
在此测试中,我想排除/忽略AJAX函数(例如record_detail_ajax
)使用的JS路由。
这是我所做的,但是没有成功!
class TokenSubscriber implements EventSubscriberInterface
{
public function onKernelController(FilterControllerEvent $event)
{
$requestedRoute = $event->getRequest()->attributes->get('_route');
if ( !preg_match( '/ajax/', $requestedRoute )) {
// Another function that returns the right route according to the recordStatus
$this->redirectionCheck = $this->checkRedirection( $sessionUid, $token );
if ($requestedRoute != $this->redirectionCheck['route'] && !preg_match( '/ajax/', $requestedRoute )) {
$event->setController( function () {
return new RedirectResponse( $this->redirectionCheck['redirection'] );
} );
}
}
}
}
我正在使用FosJS进行JS路由。
使用此代码,我总是会收到此错误:
错误:路由“ record_detail_ajax”不存在。 router.js:243:27
getRoute http://my_app.com/bundles/fosjsrouting/js/router.js:243
生成http://my_app.com/bundles/fosjsrouting/js/router.js:266
http://my_app.com/assets/js/record/record.ajax.js:70 jQuery 2