微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

iframe未加载提供的网址

如何解决iframe未加载提供的网址

我有一个部署在IIS服务器中并从 http://x.x.x.x/app 运行的asp.net MVC5应用程序。我有一个名为Geocatalog的视图,其中包含一个iframe,我要在其中嵌入在同一服务器( http://x.x.x.x:PORT/geonetwork )中运行的Geonetwork(部署在tomcat9中),但是在导航器中执行时此错误

Refused to frame 'http://x.x.x.x:PORT/' because an ancestor violates the following Content Security Policy directive: "frame-ancestors 'none'".

我不知道为什么会这样?我对另一个网址执行了完全相同的操作,效果很好。

更新

在我的web.config文件中,添加了以下行:

<add name="Content-Security-Policy" value="frame-ancestors http://subdomain.domain.com" />

仍然没有发现变化

您的帮助将不胜感激。

解决方法

  1. CSP spec不允许将IP地址用作主机源,仅127.0.0.1除外。 因此,您需要在<iframe src='x.x.x.x' frame-ancestors 中也使用域名而不是IP。

  2. 如果使用类似http://example.com的方案指定主机名,则意味着仅允许使用默认端口80(对​​于https:则为443)。 如果使用非标准端口号,则应准确指定它: frame-ancestors http://subdomain.domain.com:12345frame-ancestors subdomain.domain.com:12345。最后一个将允许使用与父页面加载相同的方案进行iframing,并避免块混合内容。但是在这种情况下,您应该使用多方案URI:<iframe src='//subdomain.domain.com:12345'

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。