如何在 Symfony 中正确允许 CORS 来源 API

How to properly allow CORS origin in Symfony API

部署我的 angular5+symfony 应用程序我发现了一些错误,无论我的配置是什么我仍然得到:

Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://api-name.real-local-domain.cu/app_dev.php/api/some-url (Reason: CORS preflight channel did not succeed).

问题是路径 /some-url/adicionar (post) 有效但没有别的。我已经按照一些文档在 apache 或虚拟主机中全局设置 CORS 源,但仍然无法正常工作。

最后这是我的 nelmio 配置,它应该允许所有来源

nelmio_cors:
    defaults:
        allow_credentials: false
        allow_origin: []
        allow_headers: []
        allow_methods: ['GET', 'POST', 'PUT', 'DELETE', 'OPTIONS']
        max_age: 3600
        hosts: []
        origin_regex: false
        forced_allow_origin_value: ~
    paths:
        '^/api/':
            allow_origin: ['*']
            allow_headers: ['X-Custom-Auth']
            allow_methods: ['POST', 'PUT', 'GET', 'DELETE']
            max_age: 3600
        '^/':
            origin_regex: true
            allow_origin: ['*']
            allow_headers: ['X-Custom-Auth']
            allow_methods: ['POST', 'PUT', 'GET', 'DELETE']
            max_age: 3600
            hosts: ['^api\.']

有人知道发生了什么吗

与 Angular 5+Symfony 3.4.6(fosrest+nelmiocors)+Apache2 Ubuntu 16.04

UPDATED

此外,当我访问部署的服务器时,我可以在我的 table 中看到请求的记录,但其他人不能。其他人收到 403 代码响应,但通常是收到 CORS header 问题。

我的应用结构:

两个虚拟主机都配置了 apache/sites-available

下的 .conf

你需要:

origin_regex: true

在你的“^/api/”部分?

同样在您的“^/”部分中,主机指定为:

hosts: ['^api\.']

不应该是:

hosts: ['^api-name\.']