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

问题描述 投票:0回答:1

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

跨源请求被阻止:同源策略不允许读取 远程资源位于 http://api-name.real-local-domain.cu/app_dev.php/api/some-url (原因:CORS预检通道未成功)。

问题是路径 /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\.']

有人知道发生了什么吗

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

已更新

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

我的应用程序结构:

  • 企业域名:realdomain.cu
  • 虚拟服务器:Ubuntu 16.04
  • 后端项目:Symfony 3.4.6+corsbundle+fosrest
  • 后端API:project-api.realdomain.cu
  • 前端:project.realdomain.cu

两个虚拟主机都在 apache/sites-available 下配置了 .conf

angular symfony cors symfony-3.4 nelmiocorsbundle
1个回答
0
投票

您需要吗:

origin_regex: true

在您的

^/api/
部分?

还在您的

^/
部分中,主机指定为:

hosts: ['^api\.']

不应该是:

hosts: ['^api-name\.']
© www.soinside.com 2019 - 2024. All rights reserved.