我的webapp有一个基于iframe的测试,我可以看到(浏览iframe时)以下内容:
1)当我在JSP上设置HttpServletRequest会话属性时,对于firefox,它正在按预期捕获/保留。
request.getSession().getAttribute("myAttr") // returns what I want
2)我在页面之间移动并使用调试器检查上面的内容,我可以确认行为没问题。
3)当我使用Chrome时,我无法再在连续请求中看到请求会话属性:
request.getSession().getAttribute("myAttr") // Returns NULL
我通过输入过滤器(在我的web.xml
中定义)跟踪了这一点,并且一旦发出新请求,所有会话属性实际上都会丢失。这只适用于Chrome和IE,而不是Firefox和Opera。
从外观上看,在我看来,对于Chrome / IE,每个请求都是通过清理所有会话属性来准备和发送的。但对我来说,这似乎是一个特定于浏览器的问题。此外,我确信这有一个简单的解释,但不记得是什么。
顺便说一句 - 当没有在iFrames中完成时,所有浏览器都能正常工作。
有人可以请我朝正确的方向发展吗?
答案 0 :(得分:0)
有趣的是,这是因为我的iframe网站阻止了Cookie。因此,只要我将网站列入白名单,就可以正常工作!!
这是预期的行为吗?既然firefox和Edge没有这个问题呢?我的意思是,我不必为Firefox和Edge做同样的事情,它们可以正常工作。