【发布时间】:2018-12-25 10:15:01
【问题描述】:
我在从 IE 中的响应中获取 cookie 值时遇到问题。在 Chrome 上,一切正常,我有一个名为 fileDownloadToken 的令牌,我将它设置在我的 Java 控制器中,如下所示:
String tokenValue = value;
response.addCookie(new Cookie("fileDownloadToken",tokenValue);
使用我的 JS,我只需一个:
var cookieList = document.cookie;
然后我将其拆分以搜索我想要的 cookie。
问题来自IE,我可以看到它在我的响应头中:
但是当我执行console.log(document.cookie) 时,我看不到它。所以显然这不是HttpOnly 的问题,否则我将无法在 Chrome 中看到它。我还尝试使用以下方法在服务器端设置 cookie:
final StringBuilder cookie =
new StringBuilder("fileDownloadToken=" + new StringBuilder(tokenValue) + "; ");
response.addHeader("Set-Cookie", cookie.toString());
但它也不适用于 IE(不过也适用于 Chrome)。
我真的不知道现在该尝试什么。提前致谢。
编辑:我的 JS 中有一个定期检查 cookie 的函数:
var fileDownloadCheckTimer;
function checkDownloadToken() {
fileDownloadCheckTimer = window.setInterval(function() {
var cookieValue = getCookie("fileDownloadToken")
if (cookieValue == token)
clearTimer();
}, 2000);
};
【问题讨论】:
标签: javascript java servlets jakarta-ee cookies