【问题标题】:JEE Servlet / JS: document.cookie not returning same thing between Chrome and IEJEE Servlet / JS:document.cookie 在 Chrome 和 IE 之间没有返回相同的东西
【发布时间】: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


    【解决方案1】:

    它可能关心的人,我通过添加解决了这个问题

    cookie.addPath("/");

    干杯

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-04-07
      • 2015-02-11
      • 2012-04-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-07
      相关资源
      最近更新 更多