JEE Servlet / JS:document.cookie在Chrome和IE之间未返回相同内容

时间:2018-07-17 16:12:02

标签: javascript java servlets java-ee cookies

我在IE中从响应中获取Cookie值时遇到问题。在Chrome上,一切正常,我有一个名为fileDownloadToken的令牌,并在Java控制器中这样设置它:

String tokenValue = value;
response.addCookie(new Cookie("fileDownloadToken",tokenValue);

使用我的JS,我只需一个:

var cookieList = document.cookie;

然后我将其拆分以搜索所需的Cookie。

问题来自IE,我可以看到它在我的响应头中:

ReponseHeader in 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);
};

1 个答案:

答案 0 :(得分:1)

可能会涉及到的人,我只需添加即可解决问题

cookie.addPath("/");

欢呼声