我在我们的 app.yml 中添加了以下语句:
DISCOURSE_ENABLE_CORS: true
DISCOURSE_CORS_ORIGIN: '*'
为了在测试期间排除变量,暂时将 ‘*’ 设置为通配符。我也曾尝试显式设置 URL,但未能奏效。
然而,尽管采取了上述措施,我们仍然遇到以下问题:
Blockquote
请求的资源上不存在 ‘Access-Control-Allow-Origin’ 响应头。
上下文:我们有一个基于 Unity 的 iOS 客户端,它与某些 Discourse API 进行交互,测试时使用 WebGL。我们在浏览器中运行 WebGL 进行测试时遇到了此问题。
我还观察到,通过 Postman 测试发现,所有响应头中都包含 ‘strict-origin-when-cross-origin’ 的 Referrer-Policy。
任何帮助都将不胜感激。谢谢!
1 个赞
IAmGav
(Gavin Perch)
2
cors origins 设置在 admin > settings > security 中控制
您只需在 app.yml 中包含 DISCOURSE_ENABLE_CORS:
1 个赞
Falco
(Falco)
5
我不确定我们是否支持这里的通配符。您能尝试使用真实域名吗?我们在几个配置了域名的网站上使用了 CORS 设置,看起来运行正常。
1 个赞
我尝试过使用域名,但没有成功。有没有办法确认环境变量是否正确设置?(或者确认应用重启已正确配置 CORS 而无需重新发送请求,我只是在思考一些调试方法。)
我认为这是处理 CORS 设置的相关代码部分,以防有用。
1 个赞
在 Nginx 访问日志中,我注意到 OPTIONS 请求返回了 404 错误(并且发生在 GET 请求错误之前)。
1 个赞