我的一位客户需要我将其外部网站插入正在开发的新网站中,我尝试将其包含在iframe中,但是我很快了解到导入的网站需要具有X-Frame-Options标头设置为允许我的网站。
我可以访问这两个网站,所以我尝试这样做,我尝试同时使用php和apache设置,但均无济于事。经过一番搜索,我发现Firefox和chrome只是不支持X-Frame-Options allow-from。
我该如何解决?还有其他方法可以使iframe工作吗?还是除iframe之外还有其他可以使用的东西?我已经搜索了很长时间,我只能找到有人提到X-Frame-Options ...
答案 0 :(得分:0)
好吧,看来我的问题实际上并非我想像的那样,原来我要iframe的网站位于http,而我创建的网站却带有ssl。它完全让我无所适从,一旦我将ssl添加到另一个网站,一切就可以正常工作。
答案 1 :(得分:-1)
X-Frame-Options
是可选标头。它通常用于拒绝浏览器从其他网站加载页面。如果未指定该标头,它将仅允许将网站嵌入iframes
,embed
或object
中。另外,修改后的浏览器只能忽略此设置,因此这不是一种非常有效的安全方式。
也许您的问题出在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
标头