如何在外部网站上使用iframe或类似工具

时间:2018-08-19 16:06:08

标签: php html html5 iframe

我的一位客户需要我将其外部网站插入正在开发的新网站中,我尝试将其包含在iframe中,但是我很快了解到导入的网站需要具有X-Frame-Options标头设置为允许我的网站。

我可以访问这两个网站,所以我尝试这样做,我尝试同时使用php和apache设置,但均无济于事。经过一番搜索,我发现Firefox和chrome只是不支持X-Frame-Options allow-from。

我该如何解决?还有其他方法可以使iframe工作吗?还是除iframe之外还有其他可以使用的东西?我已经搜索了很长时间,我只能找到有人提到X-Frame-Options ...

2 个答案:

答案 0 :(得分:0)

好吧,看来我的问题实际上并非我想像的那样,原来我要iframe的网站位于http,而我创建的网站却带有ssl。它完全让我无所适从,一旦我将ssl添加到另一个网站,一切就可以正常工作。

答案 1 :(得分:-1)

X-Frame-Options是可选标头。它通常用于拒绝浏览器从其他网站加载页面。如果未指定该标头,它将仅允许将网站嵌入iframesembedobject中。另外,修改后的浏览器只能忽略此设置,因此这不是一种非常有效的安全方式。

也许您的问题出在CORS上(不太可能,因为大多数浏览器都允许跨源框架。CORS大部分都可能在Javascript上产生问题),或者您可能试图将非安全(http://)网站嵌入到安全(https://)网站(混合内容)。

要解决CORS问题,您应确保您尝试加载的网站正在发送标头Access-Control-Allow-Origin。示例值应为Access-Control-Allow-Origin: *。要了解有关此标题的更多信息,请参见here。要了解有关CORS的更多信息,请阅读here

要解决混合内容问题,如果该网站可以接收安全连接,则应使用安全连接来加载外部网站(使用src中的https://而不是http://)。如果它不支持安全连接,则应对其进行配置。如果不能,则只需通过不安全的连接加载包含框架的页面,或禁用浏览器中混合内容的安全性(地址栏的左侧)。

注意 Firefox根据MDN documentation

支持X-Frame-Options标头