如果我像这样创建一个iframe:

var dialog = $('<div id="' + dialogId + '" align="center"><iframe id="' + frameId + '" src="' + url + '" width="100%" frameborder="0" height="'+frameHeightForIe8+'" data-ssotoken="' + token + '"></iframe></div>').dialog({

我如何修复这个错误:

拒绝在帧中显示“https://www.google.com.ua/?gws_rd=ssl”,因为它将“X-Frame-Options”设置为“SAMEORIGIN”。

使用JavaScript ?


当前回答

解决方案是安装一个浏览器插件。

一个发布HTTP报头X-Frame-Options值为DENY(或具有不同服务器源的SAMEORIGIN)的网站不能集成到IFRAME中…除非你通过安装一个忽略X-Frame- options报头的浏览器插件来改变这种行为(例如Chrome的忽略X-Frame报头)。

注意,出于安全原因,根本不建议这样做。

其他回答

你可以在你想要载入iframe的站点的web配置中设置x-frame选项

<httpProtocol>
    <customHeaders>
      <add name="X-Frame-Options" value="*" />
    </customHeaders>
  </httpProtocol>

这也是一个新的浏览器安全功能,以防止网络钓鱼和其他安全威胁。对于chrome浏览器,你可以下载一个扩展来防止浏览器拒绝请求。 我在本地使用WordPress时遇到了这个问题。

我使用这个扩展https://chrome.google.com/webstore/detail/ignore-x-frame-headers/gleekbfjekiniecknbkamfmkohkpodhe

X-Frame-Options是请求响应中包含的报头,用于声明所请求的域是否允许在帧中显示。它与javascript或HTML无关,也不能由请求的发起者更改。

本网站已设置此标头以禁止在iframe中显示。在客户端web浏览器中无法阻止这种行为。

进一步阅读X-Frame-Options

不是真的…我使用

 <system.webServer>
     <httpProtocol allowKeepAlive="true" >
       <customHeaders>
         <add name="X-Frame-Options" value="*" />
       </customHeaders>
     </httpProtocol>
 </system.webServer>

由于解决方案并没有真正提到服务器端:

一个人必须这样设置(例如apache),这不是最好的选择,因为它允许所有的事情,但在你看到你的服务器正常工作后,你可以很容易地改变设置。

           Header set Access-Control-Allow-Origin "*"
           Header set X-Frame-Options "allow-from *"