【发布时间】:2019-06-26 23:52:36
【问题描述】:
我一直试图弄清楚为什么我刚刚部署到我的 Apache 服务器上的 Symfony 4 API 应用程序会出现 CORS 问题,但无法理解这个问题。
config/packages/nelmio_cors.yaml
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']
max_age: 3600
paths:
'^/': ~
.env
...
CORS_ALLOW_ORIGIN=/*/
...
我从 localhost 前端应用程序向该 API 发出的请求的所有响应均不包含 Access-Control-Allow-Origin 标头,并且我收到标准错误;
从源访问“http://my-api.com/foo”处的 XMLHttpRequest “http://localhost:4200”已被 CORS 策略阻止:响应 预检请求未通过访问控制检查:否 请求中存在“Access-Control-Allow-Origin”标头 资源。
没有发送任何特殊的标头,现在我已将允许的原始正则表达式设置为“全部”,因此我无法确定导致问题的原因。我什至在缓存中检查以确保从 env 变量中正确提取了原点,它就是这样。如果需要其他上下文/文件内容来提供帮助,请告诉我!
【问题讨论】:
-
你确定你的 CORS_ALLOW_ORIGIN 变量。你试过 CORS_ALLOW_ORIGIN=* 吗?
-
@FlorianHermann 该变量被解释为正则表达式,但是是的,我已经尝试了这两个值