【发布时间】:2019-06-29 21:19:28
【问题描述】:
我最近需要允许 CORS,并在寻找解决方案时找到了nelmio/NelmioCorsBundle。
对于乞讨,我可以允许来自任何来源的请求,所以这是我的app/config/config.yml:
nelmio_cors:
defaults:
allow_credentials: false
allow_origin: ['*']
allow_headers: ['*']
allow_methods: ['GET', 'POST', 'PUT', 'DELETE', 'OPTIONS']
max_age: 3600
origin_regex: false
它仅适用于 GET 请求,任何 POST 请求都会返回:
请求中没有“Access-Control-Allow-Origin”标头 资源。
我不一定需要使用这个捆绑包,在乞求时我试图取消注释 TRUSTED_HOSTS 并将其设置为我在 dotenv 文件上的域,但它没有用。我也没有在文档中找到关于这个 TRUSTED_HOSTS 的任何帮助。
因此,对于这个捆绑包或 symfony 上 CORS 的任何其他解决方案的任何帮助,我都会很高兴。
如被问及,我正在使用我当前的 nelmiocors 配置进行更新:
# app/config/config.yml
# Nelmio CORS Configuration
nelmio_cors:
defaults:
origin_regex: true
allow_origin: ['%env(CORS_ALLOW_ORIGIN)%']
allow_methods: ['GET', 'OPTIONS', 'POST', 'PUT', 'PATCH', 'DELETE']
allow_headers: ['Content-Type', 'Authorization']
expose_headers: ['Link']
max_age: 3600
paths:
'^/':
origin_regex: true
allow_origin: ['%env(CORS_ALLOW_ORIGIN)%']
# allow_origin: ['^http://localhost:[0-9]+']
allow_headers: ['*']
allow_methods: ['GET', 'OPTIONS', 'POST', 'PUT', 'PATCH', 'DELETE']
# allow_methods: ['POST', 'PUT', 'GET', 'DELETE']
max_age: 3600
# hosts: ['^api\.']
【问题讨论】:
-
您可以在使用 Symfony Flex 安装捆绑包时查看配方。这是默认配置:github.com/symfony/recipes/blob/master/nelmio/cors-bundle/1.5/… 如您所见,.env 文件也使用参数 CORS_ALLOW_ORIGIN 完成
-
是的,我按照食谱做了,但是没用,之后我尝试了一条特定的路线,得到了另一个错误,所以我退后一步寻求帮助
标签: php symfony symfony4 nelmiocorsbundle