我的处境
我有一个托管在EC2实例中的web。我正在尝试配置那个EC2实例的cloudfront实例"infront“。
但是,我无法让cloudfront将请求转发到EC2实例。我被这样的错误反应击中了:
Access to XMLHttpRequest at 'https://api.example.com' from origin 'https://example.com' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No access-control-Allow-Origin header is present on the requested resource
但是,如果我将DNS更改为将https://api.example.com指向EC2实例的IP地址,它就能工作。
我到目前为止所做的一切
我想做什么,
我遇到了一个名为“配置CloudFront以尊重CORS设置”的AWS文档。
但是,它只写着“自定义起源-将原产地头与您的原产地所需的任何其他标头一起转发。”
但是..。如何做到这一点?如何将原始头与所需的任何其他标头一起转发?这些文档没有指定或链接到另一个文档来执行此操作。
我花了大约4个小时,这是非常令人沮丧的,因为Cloudfront需要30分钟部署。
发布于 2018-12-25 06:42:54
我设法解决了这个问题,原来我忽略了Cloudfront返回的另一个错误:502坏网关。尽管Chrome将显示上述错误“访问XMLHttpRequest.”。这是由于我缺乏经验而导致的DNS和SSL证书配置不当所致。
我将尝试回答我自己的问题,因为经过几个小时的搜索,没有一个直接的答案(Cloudfront,EC2和HTTPS)在Stackoverflow中,并且有许多未解决的问题。
我的小组试图实现的目标是为整个设置启用HTTPS连接:用户浏览器、Cloudfront发行版和我的EC2实例。
我做了什么来修复这个问题:
也许有一个更好的方法来设置这一点,如果是这样,请纠正我,以便我也可以改进!希望这个答案将来也能帮助到像我这样的新人。
https://stackoverflow.com/questions/53915913
复制相似问题