【问题标题】:How to properly allow CORS origin in Symfony API如何在 Symfony API 中正确允许 CORS 来源
【发布时间】:2018-09-07 14:54:21
【问题描述】:

部署我的 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】:

    你需要:

    origin_regex: true
    

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

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

    hosts: ['^api\.']
    

    不应该是:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-01-14
      • 2021-04-28
      • 2019-06-29
      • 2020-12-29
      • 2017-04-27
      • 2013-11-28
      • 2021-05-13
      • 2021-11-11
      相关资源
      最近更新 更多