Dar*_*kes 138 javascript jquery x-frame-options
如果我创建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({
Run Code Online (Sandbox Code Playgroud)
我该如何修复错误:
拒绝
'https://www.google.com.ua/?gws_rd=ssl'在框架中显示,因为它将'X-Frame-Options'设置为'SAMEORIGIN'.
用JavaScript?
Dre*_*nor 195
你可以不设置X-Frame-Options上iframe.这是您请求资源的域设置的响应标头(google.com.ua在您的示例中).SAMEORIGIN在这种情况下,他们设置了标头,这意味着他们不允许在iframe域外加载资源.有关更多信息,请参阅MDN上的X-Frame-Options响应头.
快速检查标题(在Chrome开发人员工具中显示)会显示X-Frame-Options从主机返回的值.

Ror*_*san 62
你似乎误解了这个问题.X-Frame-Options如果请求的域将允许自己在帧内显示,则返回带有请求的头.它与javascript或HTML无关,也不能由请求的发起者更改.
本网站设置此标题以禁止它显示在iframe.你无能为力阻止这种行为.
rub*_*o77 28
如果您控制发送iframe内容的服务器,则可以X-Frame-Options在Web服务器中设置设置.
要为所有页面发送X-Frame-Options标头,请将其添加到您网站的配置中:
Header always append X-Frame-Options SAMEORIGIN
Run Code Online (Sandbox Code Playgroud)
要配置nginx以发送X-Frame-Options标头,请将其添加到您的http,服务器或位置配置中:
add_header X-Frame-Options SAMEORIGIN;
Run Code Online (Sandbox Code Playgroud)
此标头选项是可选的,因此如果未设置该选项,您将提供将其配置为下一个实例的选项(例如访问者浏览器或代理)
来源:https://developer.mozilla.org/en-US/docs/Web/HTTP/X-Frame-Options
由于服务器端并未真正提及该解决方案:
必须设置这样的内容(例如来自apache的例子),这并不是最好的选择,因为它允许所有操作,但是在看到服务器正常工作之后,您可以轻松更改设置。
Header set Access-Control-Allow-Origin "*"
Header set X-Frame-Options "allow-from *"
Run Code Online (Sandbox Code Playgroud)
小智 5
不是......我用过
<system.webServer>
<httpProtocol allowKeepAlive="true" >
<customHeaders>
<add name="X-Frame-Options" value="*" />
</customHeaders>
</httpProtocol>
</system.webServer>
Run Code Online (Sandbox Code Playgroud)