如何在symfony api中正确地允许来源

时间:2018-03-28 19:28:44

标签: angular symfony cors symfony-3.4 nelmiocorsbundle

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

  

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

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

最后这是我的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
  • backend api:project-api.realdomain.cu
  • 前端:project.realdomain.cu

虚拟主机在apache / sites-available

下配置了.conf

1 个答案:

答案 0 :(得分:0)

你需要:

An exception was encountered while constructing the content of this frame.  This information is also logged in "C:\Users\some_user\AppData\Roaming\Microsoft\VisualStudio\15.0_305216d4\ActivityLog.xml".

    Exception details:
    System.ArgumentException: The package does not have a ProvideToolWindowAttribute for tool window c2582843-58c9-4fe7-b4bd-864c17ad7ce2
    Parameter name: toolWindowType
       at Microsoft.VisualStudio.Shell.Package.ThrowNoMatchingToolWindowAttribute(Object toolWindowType, String paramName)
       at Microsoft.VisualStudio.Shell.Package.GetToolWindowAttribute(Guid toolWindowType)
       at Microsoft.VisualStudio.Shell.Package.CreateToolWindow(Guid& toolWindowType, Int32 id)
       at System.Runtime.InteropServices.Marshal.ThrowExceptionForHRInternal(Int32 errorCode, IntPtr errorInfo)
       at Microsoft.VisualStudio.Platform.WindowManagement.WindowFrame.ConstructContent()

在你的'^ / api /'部分?

同样在你的'^ /'部分,主机被指定为:

origin_regex: true

不应该是:

hosts: ['^api\.']