Symfony:EventSubscriber-忽略JS路由

时间:2019-05-24 13:28:02

标签: javascript php symfony fosjsroutingbundle

我有一个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

0 个答案:

没有答案