2011-05-03 63 views
3

我的工作中的Node.js一些类似浏览器的cookie处理,并想知道如何远从NodeJS and HTTP Client - Are cookies supported?Set-Cookie是否包含多个Cookie?

代码下降到第一个分号后,一切都在这个代码扩展。

var cookie = get(response.headers, "Set-Cookie") 
if (cookie) { 
    cookie = (cookie + "").split(";").shift() 
    set(opts.headers, "Cookie", cookie) 
} 

我将以有限的方式对此进行扩展,并着眼于如何避免为未来步骤重写。

我看到使用多个Set-Cookie标头设置了多个Cookie。

回答

5

在第一个分号后删除所有内容是一个坏主意,因为它包含cookie元数据。下面是我从StackOverflow上(略删节)收到的Set-Cookie头:被设置

usr=t=ABCDEFGHIJ&s=23412341234; domain=.stackoverflow.com; expires=Fri, 04-Nov-2011 07:39:57 GMT; path=/; HttpOnly 

多个cookie看起来是这样的:

hest2=spam, pony2=spam, sovs2=spam; expires=Wed, 04-May-2011 07:51:27 GMT, NO_CACHE=Y; expires=Wed, 04-May-2011 07:56:27 GMT; path=/; domain=.something.d6.revealit.dk 

所以cookie字符串是相当复杂的解析,所以我不没想到有一个简单的方法来完成这个...

+0

谢谢,它不是我的想法,放弃分号后的一切,它是我开始的代码。感谢您的上述例子。就像我说的那样,我将以有限的方式扩展这一点。目前,我很安全地让程序在任何意想不到的cookie格式上失败,这是我正在做的,但我可能会写一个更通用的cookie处理程序,我会考虑这些格式。 – 2011-05-04 13:50:27

相关问题