如何从node.js中的请求模块获取cookie?

function getCookies(){ request('http://google.com', function (error, response, body) { if (!error && response.statusCode == 200) { console.log(response.headers); } }) } 

结果

 { date: 'Fri, 11 Dec 2015 07:15:50 GMT', expires: '-1', 'cache-control': 'private, max-age=0', 'content-type': 'text/html; charset=EUC-KR', p3p: 'CP="This is not a P3P policy! See https://www.google.com/support/accounts/answer/151657?hl=en for more info."', server: 'gws', 'x-xss-protection': '1; mode=block', 'x-frame-options': 'SAMEORIGIN', 'set-cookie': [ 'PREF=ID=1111111111111111:FF=0:TM=1449818150:LM=1449818150:V=1:S=Q3BB20FA6TkaZymd; expires=Thu, 31-Dec-2015 16:02:17 GMT; path=/; domain=.google.co.kr', 'NID=74=hnriWxk7N9jHtP5W0qgaxrwD1YuNKOmJg748ucxWilu9jaqHJVovfkYdvMr0tlp-VToID5cdTNDSXNXqr4M8umJ9traab67x2xZKfu3hJbsBRXeVvyiCOcwZ8bkXNcU4; expires=Sat, 11-Jun-2016 07:15:50 GMT; path=/; domain=.google.co.kr; HttpOnly' ], 'accept-ranges': 'none', vary: 'Accept-Encoding', connection: 'close' } 

我想从响应头文件中获取“ set-cookie ”的值。 如何捡起来? 有没有简单的方法? 我是否应该使用从文档密钥的声明,或。 我该怎么办? 我不知道我是完全新手上的Javascript。 谢谢…

 function getCookies(callback){ request('http://google.com', function (error, response, body) { if (!error && response.statusCode == 200) { return callback(null, response.headers['set-cookie']); } else { return callback(error); } }) } 

那么你可以打电话给:

 getCookies(function(err, res){ if(!err) console.log(res) }) 

一般来说,如果Node是一个常见的问题需要解决,那么已经有人在npm上编写和发布了一些东西。

例如, 请求cookies !

具体来说,我认为你会发现toJSON()方法最有帮助,但是可以toJSON()的是这个包的文档是相当轻的。 你可以查看一些工作示例的testing 。

也就是说,请求已经有一些关于cookies的大量文档 – 您可能会发现这符合您的需求:

Cookie默认是禁用的(否则,它们将在随后的请求中使用)。 要启用cookie,请将jar设置为truedefaultsoptions )。

(向下滚动到自述文件的底部以查找有关cookie的位)。

@brandonscript说,你可以如何使用request-cookies。

 var request = require('request'); var Cookie = require('request-cookies').Cookie; request.get('https://google.com', function(err, response, body) { var rawcookies = response.headers['set-cookie']; for (var i in rawcookies) { var cookie = new Cookie(rawcookies[i]); console.log(cookie.key, cookie.value, cookie.expires); } }); 

goolge的示例输出:

 NID 98=FfYHDY9-40JzE78qxIpaMugODJ4y4zJIydluKUffvh1lDs70DYk7vrlmw2ca2gD54ywx5WV44Utz9EdLOdFE6IcW2BUGfiVpHZx3kWh69tT_eWlXZTiFkRo7TVr_9WWH 2017-09-08T04:22:41.000Z