2017-07-31 43 views
0

我已经使用AWS apigateway和Lambda函数后端建立了一个简单的网站。AWS apigateway和iframe标签

apgateway设置为返回'text/html'Content-Type,它一直工作得很好。

我最近的发展是在网站上添加一些“iframe”标签来嵌入来自另一个(非亚马逊)域的内容。

现在,当页面在浏览器中呈现时,iframe引用的内容不会显示。然而,当我在本地保存html并在浏览器中打开它时,iframe内容会显示为它应该 - 这证明了html代码很好。

AWS是否有某种安全措施阻止来自其他域的嵌入内容?如果是这样,我需要改变以允许这个?

+1

I帧被加载到浏览器。您的浏览器加载HTML,看到iframe标签,然后与iframe指向的服务器进行交互。 AWS不会阻止任何内容。我的猜测是您尝试加载iframe内容的服务器阻止它,类似于:https://stackoverflow.com/questions/38068019/load-another-domain-website-in-a-iframe您需要打开您的浏览器的开发人员工具控制台,并获取实际的错误或警告消息,以便找出确切的问题。 –

+0

是的。它看起来像是它阻止嵌入式内容的浏览器中的跨源安全性。 感谢您的意见 –

+0

我试图通过在apgestway的响应中设置下列标题来解决这个问题: 访问控制允许标题:'Origin,X-Requested-With,Content-Type,Accept '\t 访问控制允许来源:'*'\t 访问控制允许方法:'GET,PUT,POST,DELETE,OPTIONS' 我可以看到在响应时正确设置了标题我在开发模式下运行Firefox,但仍未显示iframe。 任何想法如何解决这个问题(在服务器端)? –

回答

0

我发现问题是嵌入式链接使用的是http,但由apigateway提供的页面使用的是https。

Mozilla文档将其称为“混合内容”。幸运的是,我从中嵌入的网站也通过https提供了相同的网站,因此我刚刚修改了网址以使用此网址。

感谢您的帮助