使用XMLHttpRequest2设置Cookie

时间:2015-09-07 23:39:03

标签: node.js cookies express http-headers xmlhttprequest

我正在尝试使用XMLHttpRequest设置cookie。我在回复XHR帖子请求时看到“Set-Cookie”标题,但我没有在document.cookie中看到cookie。这很好,但是,我最终希望cookie不会暴露给javascript环境,但是我没有看到任何后续发布请求来自脚本的cookie,我认为cookie会自动附加到浏览器的请求中。这是不正确的?关于cookie是否被设置,我有点困惑,我可以用一些帮助搞清楚。

以下是客户端代码的样子:

(function() {
  var xhr = new XMLHttpRequest();
  var authUrl= "http://api.myserver.io/cookie"
  xhr.addEventListener("load", reqListener);
  xhr.open("POST", authUrl, true);
  xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  xhr.credentials = true;
  xhr.send();
  xhr.onreadystatechange = function() {
    if (xhr.readyState == 4 && xhr.status == 200) {
      debugger;
      // I'm not seeing anything in xhr.request
    }
  }
  var reqListener = function() {
    debugger;
  }
})()

服务器代码正在使用expreess并使用此函数处理请求:

var setCookie = function(req, res) {
  res.cookie('test-cookie', Date.now(), {
    maxAge: 3600000000,
    path:  '/' });
  res.status(200).end()
}

1 个答案:

答案 0 :(得分:1)

我需要设置xhr.withCredentials = true,而不是xhr.credentials = true