如何在 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 问题。
我的应用结构:
- 企业域名:realdomain.cu
- 虚拟服务器:Ubuntu16.04
- 后端project:Symfony 3.4.6+corsbundle+fosrest
- 后端 api: project-api.realdomain.cu
- 前端:项目。realdomain.cu
两个虚拟主机都配置了 apache/sites-available
下的 .conf
你需要:
origin_regex: true
在你的“^/api/”部分?
同样在您的“^/”部分中,主机指定为:
hosts: ['^api\.']
不应该是:
hosts: ['^api-name\.']
部署我的 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 问题。
我的应用结构:
- 企业域名:realdomain.cu
- 虚拟服务器:Ubuntu16.04
- 后端project:Symfony 3.4.6+corsbundle+fosrest
- 后端 api: project-api.realdomain.cu
- 前端:项目。realdomain.cu
两个虚拟主机都配置了 apache/sites-available
下的 .conf你需要:
origin_regex: true
在你的“^/api/”部分?
同样在您的“^/”部分中,主机指定为:
hosts: ['^api\.']
不应该是:
hosts: ['^api-name\.']