Intereting Posts
PHP Удалить URL-адрес: «недопустимые» символы из строки Узнайте, как используется ширина изображения jQuery WooCommerce показывает два набора всех способов оплаты Как разгрузить скрипт / стили select2, загруженный новой WooCommerce 2.3.x? Как установить параметр функции PHP для переменной в качестве значения по умолчанию Когда SIGTERM отправляется, дочерний процесс закрывает соединение mysql? Шифрование строки в PHP и расшифровка в Node.js Водяные знаки в файлах PDF с использованием PHP Как войти в joomla через внешний скрипт? Пользовательский serialize_handler для настраиваемого php SessionHandler (хранилище БД) преимущества «HTTP-аутентификации с помощью PHP» как создать пользовательское текстовое поле автозаполнения в yii Как использовать конфигурационный файл YAML в Silex Framework Как перенаправить пользователей на свои идентификационные URL / целевые страницы после входа в систему? Как я могу получить шестнадцатеричный дамп строки в PHP?

Symfony2 – как я могу настроить пользовательские заголовки?

Я хочу установить следующие заголовки для шаблона TWIG из моего 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, *'); 

Любые предложения, как это сделать?

Related of "Symfony2 – как я могу настроить пользовательские заголовки?"

Использование класса ответа:

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

Источник / Документация

из этой статьи:

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 } 

Если его внутренний контроллер использует это:

 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; } } 

Просто замените Content-Type своим ключом заголовка и xml значением … и т. Д.

Если вы используете метод render() контроллера, то вы можете добавить необходимые заголовки, как показано ниже, потому что метод render() возвращает объект Response:

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