Symfony 4和Nelmio CORS软件包的CORS错误

Chr*_*own 5 cors symfony

我一直在试图弄清为什么我刚刚部署到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:
        '^/': ~
Run Code Online (Sandbox Code Playgroud)

.env

...
CORS_ALLOW_ORIGIN=/*/
...
Run Code Online (Sandbox Code Playgroud)

我从localhost前端应用程序对该API 发出的请求的所有响应均不包含Access-Control-Allow-Origin标头,并且出现标准错误;

从起源' http:// localhost:4200 '对' http://my-api.com/foo ' 处的XMLHttpRequest的访问已被CORS策略阻止:对预检请求的响应未通过访问控制检查:否'访问-Control-Allow-Origin'标头出现在请求的资源上。

没有特殊的报头被发送,现在我已经将允许的源正则表​​达式设置为“ all”,所以我无法弄清楚导致此问题的原因。我什至在缓存中进行了检查,以确保已正确地从env变量中提取了原点。如果需要其他上下文/文件内容来协助您,请告诉我!

Chr*_*own 0

我已经解决了这个问题,虽然表面上看起来与CORS配置有关,但实际上是服务器上项目的配置错误。

TL;DR 是该项目缺少一个.htaccess由于使用 Valet 而在开发中不需要的文件 - 按照此处的说明解决了该问题。