2

我有一些自定义代码(在标签中)将创建一个 cookie 并将其发送到浏览器。此代码适用于 Chrome、Firefox 和 IE9,但出于某种原因,在 IE10 中,cookie 甚至不会在响应标头中发送!

创建 cookie 的代码只是 Java 标准:

Cookie cookie = new Cookie("recently-viewed-producs-cookie", encryptedCookie);
cookie.setPath("/");
cookie.setDomain(getSlingRequest().getServerName());
cookie.setMaxAge(COOKIE_AGE_IN_SECONDS);
getSlingResponse().addCookie(cookie);

有谁知道为什么会发生这种情况?我加密了我的 cookie 的内容,所以没有无效字符(我相信)。

发送 CQ5 创建的其他 cookie 并由浏览器保存。我检查了浏览器的 cookie 设置,它被设置为接受所有内容,包括会话 cookie。

欢迎任何建议!

4

2 回答 2

1

试试这个 response.addHeader(Set-Cookie: =[; =]... [; expires=][; domain=] [; path=][; secure][; httponly]),记住每个之后都有空格每个分号

我从这里得到的 http://msdn.microsoft.com/en-us/library/windows/desktop/aa384321(v=vs.85).aspx

于 2013-06-09T15:06:41.820 回答
1

我做了一些研究,发现 IE 只接受有过期日期的 cookie。请参阅此处:来自 IE 中的 servlet 的持久 cookie

我会尝试使用 apache commons cookie 类:http ://hc.apache.org/httpclient-3.x/apidocs/org/apache/commons/httpclient/Cookie.html 。这允许您设置到期日期。

于 2013-06-06T16:50:28.023 回答