IE 9设置cookie并重定向失败

时间:2011-07-26 13:24:10

标签: java spring internet-explorer cookies redirect

在我的spring-application中,我尝试设置一个cookie,然后重定向到读取cookie的页面。重定向到另一个网页有效,但设置cookie仅在IE9中失败。

Cookie cookie = MyCookieHandler.createCookie(parameters, domain);
response.addCookie(cookie);

重定向处理购买设置ModelAndView

modelView = new ModelAndView("redirect:" + getCallback());

正如我所说,在FF3 +,Chrome和IE7 / IE8中工作正常。我的应用程序有什么问题?有什么建议吗?

3 个答案:

答案 0 :(得分:5)

我在IE 8,9和10中遇到过类似的问题,而缓存控制标题也无济于事。在进一步研究之后,我不得不放置一个P3P privacy policy(来自较旧的Java Web应用程序)并且IE正确地存储了cookie而没有缓存控制头。

此政策格式目前仅受到Internet Explorer的尊重,但提供了唯一可靠的方法来管理Cookie,而无需在IE隐私设置中进行手动更改。 P3P隐私策略分为两部分:策略文件和紧凑策略头。紧凑的政策标题似乎运作良好。不同类别的P3P具有紧凑的代码,以简化标题,例如, navigation => NAV。至少,我会从紧凑政策的INT,NAV和UNI代码开始。

以下是两个如何传回标题的示例:

Grails/Java:
    response.setHeader("P3P", "CP='INT NAV UNI'");

PHP:
    header('P3P:CP="INT NAV UNI"')

答案 1 :(得分:3)

经过一些尝试后,我添加了以下内容:

response.addHeader("Pragma", "no-cache");
response.addHeader("Cache-Control", "no-cache");

现在它适用于我,不知道这是否是正确的解决方案,并且不知道为什么缓存在IE9中有所不同,但现在它可以正常运行...谢谢你们。

答案 2 :(得分:2)

之前我遇到了重定向失败的问题。它奇怪地似乎在Firefox中工作,但在IE中失败了。解决方案是在重定向语句中添加一个完整的URL,即

http://foo.com/new_site.html

而不是

new_site.html
相关问题