我有一些自定义代码(在标签中),可以创建 cookie 并将其发送到浏览器。此代码适用于 Chrome、Firefox 和 IE9,但由于某些原因,在 IE10 中,cookie 甚至不会在响应 header 中发送!
创建 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 设置,它被设置为接受所有内容,包括 session cookie。
欢迎任何建议!
最佳答案
我做了一些研究,发现 IE 仅接受有过期日期的 cookie。参见这里:Persistent cookies from a servlet in IE 。
我会尝试使用 apache commons cookie 类:http://hc.apache.org/httpclient-3.x/apidocs/org/apache/commons/httpclient/Cookie.html 。这允许您设置到期日期。
关于cookies - CQ5自定义标签在响应中设置cookie,但使用IE10时不在响应 header 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16953379/