geoserver中出现’X-Frame-Options’ to 'sameorigin’的问题
问题
编写代码时,想通过点击查看影像的像素值,这对高程栅格影像十分有作用,发现在geoserver给的openlayers源码中,有这样的功能,但是问题是:自己编写的代码中无法加载,出现了以上错误!
原代码是:
document.getElementById('nodelist').innerHTML
= '<iframe seamless src="' + url + '"></iframe>';
当通过标签iframe
加载网页时,会出现以上问题。
问题原因是防止网站劫持攻击:
为了防止点击劫持攻击的GeoServer默认到设置在X框-选项HTTP标头SAMEORIGIN。这可以防止 GeoServer 嵌入到 iFrame 中,从而防止某些类型的安全漏洞。从 google OWASP Clickjacking 条目中查看详细信息。
详细原因链接Setting GeoServer x-frame-options?
如何解决呢?
找到geoserver目录下的web.xml文件,(web.xml文件的位置可参考has been blocked by CORS policy ,GeoServer跨域问题)
打开web.xml,找到以下两处配置:
<filter>
<filter-name>xFrameOptionsFilter</filter-name>
<filter-class>org.geoserver.filters.XFrameOptionsFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>xFrameOptionsFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping> -->
默认情况下是打开的,将其注释掉,重启服务器即可。