src/Infrastructure/EventSubscriber/AppCorsSubscriber.php line 25

Open in your IDE?
  1. <?php
  2. namespace App\Infrastructure\EventSubscriber;
  3. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  4. use Symfony\Component\HttpFoundation\Request;
  5. use Symfony\Component\HttpFoundation\Response;
  6. use Symfony\Component\HttpKernel\Event\RequestEvent;
  7. use Symfony\Component\HttpKernel\Event\ResponseEvent;
  8. use Symfony\Component\HttpKernel\KernelEvents;
  9. class AppCorsSubscriber implements EventSubscriberInterface
  10. {
  11.     public function onKernelRequest(RequestEvent $event): void
  12.     {
  13.         if (!$event->isMasterRequest()) {
  14.             return;
  15.         }
  16.         if (Request::METHOD_OPTIONS === $event->getRequest()->getRealMethod()) {
  17.             $event->setResponse(new Response());
  18.         }
  19.     }
  20.     public function onKernelResponse(ResponseEvent $event)
  21.     {
  22.         $response $event->getResponse();
  23.         $response->headers->set('Access-Control-Allow-Origin''*');
  24.         $response->headers->set('Access-Control-Allow-Headers''*');
  25.         $response->headers->set('Access-Control-Allow-Methods''*');
  26.         $event->setResponse($response);
  27.     }
  28.     public static function getSubscribedEvents(): array
  29.     {
  30.         return [
  31.             KernelEvents::REQUEST => ['onKernelRequest'9999],
  32.             KernelEvents::RESPONSE => ['onKernelResponse'1]
  33.         ];
  34.     }
  35. }