我的处境很艰难。
我正在创建一个类似于YouTube的网站。然而,它不仅播放视频文件,还通过<iframe>
标签显示HTML文件。HTML文件本质上是一个视频,但通过动画HTML元素生成(确切地说,是Adobe Captivate HTML5课程)。HTML文件托管在AWS CDN上,网站代码托管在负载均衡器后面的EC2实例上。
当我试图通过JavaScript向iframe中的HTML视频发送命令时,问题就出现了。web浏览器拒绝执行我的代码,因为web应用程序的域名与CDN中HTML文件的域名不同。浏览器将此视为安全威胁(因为它是两个不同的域)并拒绝执行该命令。因此,网站和HTML内容必须具有相同的域名,以便我执行代码。
所以我的问题是,请记住,S3在CDN后面,EC2实例在负载均衡器后面,我如何让我在EC2实例上的文件与S3实例具有相同的公共域。
或者,我应该换一种方式吗?
谢谢。
将CloudFront放在S3和EC2实例前面。然后使用CloudFront路径模式将分布映射到多个来源。