symfony2 headers data php symfony cors

php - headers - Symfony2: ¿cómo puedo configurar encabezados de CORS personalizados?



symfony request get parameters (4)

Si está dentro del controlador, usa esto:

use Symfony/Bundle/FrameworkBundle/Controller/Controller; use Symfony/Component/HttpFoundation/Response; class DefaultController extends Controller { public function indexAction() { ... $response = new Response($xmlContent); $response->headers->set(''Content-Type'', ''xml''); $response->headers->set(''Another-Header'', ''header-value''); return $response; } }

Simplemente reemplace Content-Type con su clave de encabezado y xml con valor ... etc.

Quiero establecer los siguientes encabezados para la plantilla TWIG desde mi DefaultController:

header(''Access-Control-Allow-Methods: GET, POST, OPTIONS''); header(''Access-Control-Allow-Credentials: true''); header(''Access-Control-Allow-Origin: http://www.mywebsite.com''); header(''Access-Control-Allow-Headers: Content-Type, *'');

¿Alguna sugerencia de cómo hacer eso?


Si está utilizando el método render() del controlador, puede agregar los encabezados necesarios como a continuación porque el método render() devuelve un objeto Response:

$response = $this->render(''AppBundle:Post:index.html.twig'', array(''someArgs'' => $someArgs)); $response->headers->set(''Content-Type'', ''text/html''); return $response;


Usando la clase de respuesta:

use Symfony/Component/HttpFoundation/Response; $response = new Response(); $response->headers->set(''Content-Type'', ''text/html''); $response->send();

Source/Documentation


de this artículo:

CorsListener.php

<?php namespace MyCorp/MyBundle/Listener; use Symfony/Component/HttpKernel/Event/FilterResponseEvent; class CorsListener { public function onKernelResponse(FilterResponseEvent $event) { $responseHeaders = $event->getResponse()->headers; $responseHeaders->set(''Access-Control-Allow-Headers'', ''origin, content-type, accept''); $responseHeaders->set(''Access-Control-Allow-Origin'', ''*''); $responseHeaders->set(''Access-Control-Allow-Methods'', ''POST, GET, PUT, DELETE, PATCH, OPTIONS''); } }

services.yml

app.cors_listener: class: MyCorp/MyBundle/Listener/CorsListener tags: - { name: kernel.event_listener, event: kernel.response, method: onKernelResponse }