CORS无法跨AWS API Gateway,S3和浏览器工作?

时间:2016-10-18 00:09:20

标签: ajax amazon-s3 cors

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

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

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

我在这里缺少什么想法?

修改 我也在API网关中启用了CORS,我附上了这些的截图。感谢您在回复中指出这一点!

OPTIONS header values

POST overview

POST method with CORS

OPTIONS method with CORS

enter image description here

Safari error message

1 个答案:

答案 0 :(得分:2)

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