Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/228.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Symfony2在每个响应上返回跨域标头_Php_Symfony_Cross Domain_Cors - Fatal编程技术网

Php Symfony2在每个响应上返回跨域标头

Php Symfony2在每个响应上返回跨域标头,php,symfony,cross-domain,cors,Php,Symfony,Cross Domain,Cors,有没有办法将我的应用程序配置为在每次响应时返回特定的标题 我正在开发一个restful api,我需要支持跨域请求,我一直在研究CORS,但我需要在每个响应上返回这样的头: namespace Acme\DemoBundle\EventListener; use Symfony\Component\HttpKernel\Event\FilterResponseEvent; class ResponseListener { public function onKernelRespons

有没有办法将我的应用程序配置为在每次响应时返回特定的标题

我正在开发一个restful api,我需要支持跨域请求,我一直在研究CORS,但我需要在每个响应上返回这样的头:

namespace Acme\DemoBundle\EventListener;

use Symfony\Component\HttpKernel\Event\FilterResponseEvent;

class ResponseListener
{
    public function onKernelResponse(FilterResponseEvent $event)
    {
        $request = $event->getRequest();

        // only do something on some situations
        if (false === strpos($request->headers->get('Foobar'), 'barfoo')) {
            return;
        }

        // set the custom header of the response
        $event->getResponse()->headers->set('Acme', 'demo');
    }
}
访问控制允许凭据“true” 访问控制允许源“任何客户端” 访问控制允许方法“获取、放置、发布、删除、选项” 访问控制允许标头,“X-CSRF-Token,X-Requested-With,Accept,Accept Version,--内容长度,内容-MD5,内容类型,日期,X-Api-Version” 您可以创建自定义ResponseListener并为每个响应设置标题:

namespace Acme\DemoBundle\EventListener;

use Symfony\Component\HttpKernel\Event\FilterResponseEvent;

class ResponseListener
{
    public function onKernelResponse(FilterResponseEvent $event)
    {
        $request = $event->getRequest();

        // only do something on some situations
        if (false === strpos($request->headers->get('Foobar'), 'barfoo')) {
            return;
        }

        // set the custom header of the response
        $event->getResponse()->headers->set('Acme', 'demo');
    }
}
然后将侦听器声明为服务:

# app/config/config.yml
services:
    kernel.listener.your_listener_name:
        class: Acme\DemoBundle\EventListener\ResponseListener
        tags:
            - { name: kernel.event_listener, event: kernel.response, method: onKernelResponse }

$response->headers->set'Access-Control-Allow-Origin'、'Any Client';