首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >重新加载IFrame

重新加载IFrame
EN

Stack Overflow用户
提问于 2016-05-04 08:38:30
回答 1查看 544关注 0票数 0

我有一个web表单(使用ZK框架),比方说在http://www.example.com/myform

此表单get包含在我的主页(例如,http://www.anotherexample.com)中的iframe中。

奇怪的是:

在Internet 9-11中,每当我脱离一个字段的焦点时,IFrame就会完全重新加载(在那里会进行一些字段检查)。但这种情况只发生在IE中,而且只发生在IFrame中。如果我直接加载http://www.example.com/myform,它可以正常工作。

另一个让整个事情变得奇怪的细节是:如果我附加地打开IE中的一个选项卡并在那里加载http://www.example.com/myform,则iframe突然也会正常工作(在重新加载之后)。

不幸的是,IE没有显示任何错误时,重新加载的iframe,所以我不知道发生了什么和为什么。其他浏览器(火狐浏览器、Chrome浏览器)在IFrame上运行得非常好。

有什么线索可能是什么原因?

EN

回答 1

Stack Overflow用户

发布于 2016-05-04 16:24:50

在本例中,原因是P3P,如下所述:https://blogs.msdn.microsoft.com/ieinternals/2013/09/17/a-quick-look-at-p3p/

简而言之,Internet拒绝来自iframes中第三方上下文(不同域)的cookie。这当然会导致提到的行为:

  • 发送到ZK后端的任何请求(包括触发“焦点丢失”的内容)都不会有会话id (因为没有cookie),因此ZK将触发一个完整的重新加载。
  • 在另一个选项卡中打开ZK应用程序允许它创建一个cookie,然后iframe中的ZK应用程序可以访问这个cookie。

解决方案是发送正确的P3P头,在ZK中可以通过各种方式完成,例如通过.zul文件头指令、servlet过滤器或直接在P3P服务器上完成。完成此操作后,应用程序将按照IE9-11中的预期工作。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37022532

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档