2

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

我处于测试阶段,所以我的后端 API 添加 Access-Control-Allow-Headers:"*"到所有响应中。

但是,缓存的响应存在问题。在它们的标头中,Access-Control-Allow-Headers:"*"被 覆盖,在缓存之前请求资源的客户端地址Access-Control-Allow-Headers:"example.com"在哪里。example.com

www.example.com所以,如果我在地址而不是地址上打开我的前端应用程序,example.com我会在萤火虫中看到以下错误

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,它将 CORS 标头支持添加到我的 Symfony3 应用程序中。

4

1 回答 1

1

尝试forced_allow_origin_value: *在您的配置中设置:

 nelmio_cors:
    defaults:
        …
        forced_allow_origin_value: *

根据配置文档

默认情况下,Access-Control-Allow-Origin响应标头值是Origin请求标头值(如果它与您定义的规则匹配allow_origin),因此对于大多数用例来说应该没问题。如果不是,您可以通过设置您想要使用的确切值来覆盖此行为forced_allow_origin_value

所以要发送Access-Control-Allow-Origin: *,你想要的确切值就是字面意思*

于 2017-02-17T01:50:41.763 回答