【问题标题】:CORS not working across AWS API Gateway, S3 and browsers?CORS 不能跨 AWS API Gateway、S3 和浏览器工作?
【发布时间】:2017-02-27 02:17:21
【问题描述】:

我有一个设置,其中 S3 中的静态文件向 API 网关提交 POST 请求,但我真的很难正确设置 CORS。

在我最后的尝试中,我什至将 Access-Control-Allow-Origin 标头硬编码为 s3 域,但无济于事。

在邮递员中,我看到 Access-Control-Allow-Origin 按预期正确返回,但是当从 S3 请求数据时,它在 chrome 和 safari 中被拒绝。我也尝试为 Access-Control-Allow-Origin 标头设置通配符,但效果相同。

任何想法我在这里缺少什么?

编辑 我也在 API Gateway 中启用了 CORS,我附上了这些截图。感谢您在回复中指出这一点!

【问题讨论】:

  • 刚刚检查...你Enable CORS for an API Gateway Resource了吗?
  • 另外...您是否在启用 CORS 后部署了 API?做了好几次都忘记部署了。
  • 感谢@JohnRotenstein 和ranmam 的指点,我已经更新了帖子。我重新部署只是为了确保 - 我也被抓到了..

标签: ajax amazon-s3 cors


【解决方案1】:

经过一番严重的挠头后,我发现我的问题是我正在使用资源代理与 AWS 自动添加的 CORS OPTIONS 资源的组合。通过对我的 lambda 函数进行资源代理,我无法指定原始标头,并且我认为无论如何都会添加它,因为我执行了“启用 CORS”步骤。我停止使用资源代理并手动写出映射,问题就消失了(现在我可以自己在集成映射中指定标头值)。

【讨论】:

    猜你喜欢
    • 2020-06-05
    • 1970-01-01
    • 2023-03-05
    • 2016-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-31
    • 1970-01-01
    相关资源
    最近更新 更多