在Node.js中,我需要捕获在响应中设置cookie的实例,因此我可以操作它。我正在解决设置cookie的这两种方式:
set-cookie
HTTP标头<meta http-equiv="Set-Cookie">
我能够使用第一个工作:
if (getProperty(responseHeaders, 'set-cookie') != null) {
//do something
}
我如何处理第二种方法?我是否需要抓取HTML响应,还是有更好的方法?如果是前者,怎么样?
答案 0 :(得分:0)
我通过在响应主体上使用正则表达式来解决这个问题:
var regexHandler = function(match, cookieValue){
return ""; //remove the meta tag
};
responseBody = responseBody.replace(/<meta.*http-equiv=[\"']?set-cookie[\"']?.*content=[\"'](.*)[\"'].*>/gi, regexHandler);
responseBody = responseBody.replace(/<meta.*content=[\"'](.*)[\"'].*http-equiv=[\"']?set-cookie[\"']? .*>/gi, regexHandler);
答案 1 :(得分:-1)
Cookie作为HTTP标头的一部分传输。它是一个HTTP的东西,而不是HTML的东西。
当cookie从客户端进入您的服务器时,标头字段称为“Cookie”。如果您要在客户端浏览器中设置或保留cookie,则必须在响应中包含“Set-Cookie”标记。
如果您没有设置cookie,它将在客户端浏览器中删除。
您可以在req.header['set-cookie']
中查找Cookie,也可以使用响应以相同的方式设置Cookie。
有很多好的图书馆可以为你做所有这些。看一下适用于Express,Connect和普通NodeJS的https://github.com/jed/cookies:)