node.js请求中有多个“Cookie”标头

时间:2013-08-27 02:42:09

标签: javascript node.js cookies http-headers request

我已经看过如何使用单个cookie发出请求,并且我已经看到如何使用多个cookie编写响应,但是有人知道如何使用http模块在node.js中编写请求(如果可能的话) )有多个'Cookie'标题?

到目前为止,我看到在node.js中发出请求的唯一方法是将对象作为参数传递给函数,这需要有两个相同的键。

headers = {
    Cookie: firstCookie,
    Cookie: secondCookie
}

所以不行。

这是一个node.js问题,但我对http并不十分自信,所以我不确定是否有办法在标题中设置两个不同的cookie。是否可以将两者连接成一个头?具有两个单独定义的cookie的请求是否会与包含两个?的单个标头的请求不同?

1 个答案:

答案 0 :(得分:12)

您添加的“Cookie”属性是HTTP请求中的直接标头。 您应该只使用一个“Cookie”标头,并将您的Cookie正确编码为一个有效的Cookie标头字符串,如:

var headers = {
    Cookie: 'key1=value1; key2=value2'
}

此外,我建议您使用像Requestify这样的简化库,而不是使用nodeJS本机HTTP客户端,这通常会让您编写大量的样板代码。

这是您使用requiretify使用cookie发出HTTP请求的方法:

var requestify = require('requestify');

requestify.get('http://example.com/api/resource', {
    cookies: {
        'key1': 'val1',
        'key2': 'val2',    
    }
})
  .then(function(response) {
      // Get the response body (JSON parsed or jQuery object for XMLs)
      response.getBody();
  }
);