Angularjs Symfony 3 HTTP缓存和跨源标头覆盖

Angularjs Symfony 3 HTTP缓存和跨源标头覆盖,angularjs,symfony,caching,cors,nelmiocorsbundle,Angularjs,Symfony,Caching,Cors,Nelmiocorsbundle,我有一个前端AngularJS应用程序,它使用用Symfony 3编写的后端API。我正在使用Symfony HTTP缓存来加速一些沉重的响应 我正处于测试阶段,因此我的后端API添加了 访问控制允许对所有响应使用标题:“*” 但是,缓存的响应有一个问题。在其标头中,Access Control Allow Headers:“*”被Access Control Allow Headers:“example.com”覆盖,其中example.com是在缓存资源之前请求资源的客户端地址 因此,如果我

我有一个前端AngularJS应用程序,它使用用Symfony 3编写的后端API。我正在使用Symfony HTTP缓存来加速一些沉重的响应

我正处于测试阶段,因此我的后端API添加了
访问控制允许对所有响应使用标题:“*”

但是,缓存的响应有一个问题。在其标头中,
Access Control Allow Headers:“*”
Access Control Allow Headers:“example.com”
覆盖,其中
example.com
是在缓存资源之前请求资源的客户端地址

因此,如果我在地址
www.example.com
而不是地址
example.com
上打开前端应用程序,我会在firebug中看到以下错误

XMLHttpRequest cannot load https://backend.com/tests/all. 
The 'Access-Control-Allow-Origin' header has a value 'http://example.com' 
that is not equal to the supplied origin. 
Origin 'http://www.example.com' is therefore not allowed access. 

我正在使用NelmioCorsBundle,它为我的Symfony3应用程序添加CORS头支持。

尝试设置
强制\u允许\u原点\u值:
在配置中:

 nelmio_cors:
    defaults:
        …
        forced_allow_origin_value: *
Per:

默认情况下,
Access Control Allow Origin
响应标题值为
Origin
请求头值(如果它与您所使用的规则匹配 使用
allow_origin
定义),因此对于大多数情况下都可以使用 案例。如果不是,则可以通过设置 使用
forced\u allow\u origin\u value
所需的精确值


因此,要发送
访问控制允许来源:
,您需要的确切值是
*

非常感谢!在配置中添加
forced\u allow\u origin\u value
解决了我的问题。但是,在此之前,我需要将我的NelmioCors更新到1.5版,ant将
*
放在qoutes中<代码>强制\u允许\u原点\u值:'*'谢谢!它对我来说很有效,但是有引号:
forced\u allow\u origin\u value:“*”
这个解决方案基本上为每个人打开了大门。我们需要的是,当通过HTTP缓存提供响应时,能够重新计算CORS响应头,因为该缓存也会缓存头。