我有一个icefaces文件上传模块:<ace:fileEntry (...)/>
。在我上传文件后,一个弹出窗口出现了一个<ice:inputSecret (...)/>
,但最近(我不知道为什么)它没有显示弹出窗口,因为浏览器中没有刷新备份状态。导航到另一个页面并返回后,弹出窗口是可见的。Firebug控制台有两个JS错误:
第一个错误:
加载被X-Frame-Options拒绝:http://localhost:8080/appname/index.xhtml不允许帧
的第二个错误:
错误:访问属性"document"的权限被拒绝i.contentWindow.document
我知道这两个错误都是相同的,但是导致这种情况的iframe似乎是由icefaces生成的,作为密码弹出框的兄弟姐妹。它的命名也与弹出框的命名有关。但是,第二个错误是在这个函数中抛出的:
ice.ace.fileentry = {
iframeLoaded : function(context, id) { //(...)
我该怎么办?
所以,事实证明,几天前有人实现了一个安全过滤器,它设置在web.xml中。这个过滤器添加了这样一个标题:response.setHeader("X-Frame-Options", "DENY");
而不是DENY
,我们需要使用SAMEORIGIN
。