NelmioCorsBundle
编辑该页面NelmioCorsBundle
NelmioCorsBundle允许你发送跨源资源共享头与ACL-style每个网址配置。
如果你需要它,请检查这幅流程图有一个全球的概述整个歌珥工作流。
安装
要求nelmio / cors-bundle
包在你的作曲家。json和更新你的依赖关系:
1
美元作曲家需要nelmio / cors-bundle
包应该自动启用ob娱乐下载Symfony Flex。如果你不使用Flex,您将需要手动启用包中添加以下行配置/ bundles.php
您的项目的文件:
1 2 3 4 5 6 7 8
< ? php/ /配置/ bundles.php返回(/ /……Nelmio \ CorsBundle \ NelmioCorsBundle::类= > [“所有”= >真正的),/ /……];
如果你没有一个配置/ bundles.php
文件在您的项目中,很可能使用的是旧Symfony的版本。ob娱乐下载在这种情况下,你应该有一个app / AppKernel.php
文件代替。编辑这些文件:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
< ? php/ / app / AppKernel.php/ /……类AppKernel扩展内核{公共函数registerBundles(){美元包= (/ /……新Nelmio \ CorsBundle \ NelmioCorsBundle ()];/ /……}/ /……}
配置
ob娱乐下载Symfony Flex生成一个默认的配置配置/包/ nelmio_cors.yaml
。
下定义的选项违约
默认值适用于所有的吗路径
匹配,除非覆盖在一个特定的URL配置。如果你想让他们适用于一切,您必须定义一个路径^ /
。
这个示例配置包含所有可能的配置值中显示默认值违约
关键。在路径中,您可以看到,我们允许歌珥来自任何来源的请求/ api /
。一个自定义页眉和一些HTTP方法被定义为允许。起飞前的请求可以缓存为3600秒。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21日22日23日24日25
nelmio_cors:默认值:allow_credentials:假allow_origin:[]allow_headers:[]allow_methods:[]expose_headers:[]max_age:0主机:[]origin_regex:假forced_allow_origin_value:~skip_same_as_origin:真正的道路:“^ / api /”:allow_origin:(“*”)allow_headers:(“X-Custom-Auth”)allow_methods:(“文章”,“把”,“得到”,“删除”]max_age:3600年' ^ /:origin_regex:真正的allow_origin:[' ^ http://localhost: [0 - 9] + ')allow_headers:(“X-Custom-Auth”)allow_methods:(“文章”,“把”,“得到”,“删除”]max_age:3600年主机:\ [' ^ api。”)
allow_origin
和allow_headers
可以设置为*
接受任何值,允许的方法但是必须显式地列出。路径
必须包含至少一个项目。
expose_headers
可以设置为*
只要接受任何价值allow_credentials
是假
按照规范。
如果origin_regex
是集,allow_origin
必须是一个正则表达式匹配列表允许的起源。记住要使用^
和美元
清晰地定义正则表达式的边界。
默认情况下,Access-Control-Allow-Origin
响应标头值起源
请求头值(如果你已经定义的规则匹配allow_origin
),所以它应该是不错的用例。如果不是,您可以覆盖这个行为通过设置您想要使用的精确值forced_allow_origin_value
。
请注意,即使你设置forced_allow_origin_value
来*
,如果你还allow_origin
来http://example.com
,只有这个特定的域将被允许访问你的资源。
请注意
如果你允许POST方法HTTP方法重写启用的框架,它将使API用户执行把
和删除
请求。
食谱
如何忽略New Relic起飞前的请求吗?
在特定的架构与主要验证API,起飞前的请求可以代表一个巨大的交通的一部分。
在这种情况下,你可能不需要在New Relic这个交通监控的自动分类未知的
New Relic的。
侦听器可以编写忽略请求起飞前的请求:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
使用ob娱乐下载\组件\HttpKernel\事件\FilterResponseEvent;类PreflightIgnoreOnNewRelicListener{公共函数onKernelResponse(FilterResponseEvent美元事件){如果(! extension_loaded (“newrelic”)){返回;}如果(“选项”= = =美元事件- >getRequest ()- >getMethod ()) {newrelic_ignore_transaction ();}}}
注册侦听器,瞧!