node.js设置cookie并发送gif作为响应

时间:2013-03-20 11:14:22

标签: node.js pixel httpresponse gif

我在node.js中编写了一个脚本(基于web信标像素),需要设置cookie并将像素发送回客户端。

我的问题是cookie没有设置,如果我从代码中删除了发送它工作的GIF的部分,但我无法找到一种方法让这两件事一起设置一个cookie并发回GIF。 / p>

http = require('http');
url = require('url');

http.createServer(function(req, res){
    var requestURL = url.parse(req.url, true);
    if (requestURL.pathname == '/log.gif') {

        // Write a Cookie
        res.writeHead(200, {
            'Set-Cookie' : 'id='+requestURL.query.id+'; expires=' + new Date(new Date().getTime()+86409000).toUTCString()
        });

        var imgHex = '47494638396101000100800000dbdfef00000021f90401000000002c00000000010001000002024401003b';
        var imgBinary = new Buffer(imgHex, 'hex');
        res.writeHead(200, {'Content-Type': 'image/gif' });
        res.end(imgBinary, 'binary');


    } else {
        res.writeHead(200, {'Content-Type': 'text/plain' });
        res.end('');
    }
}).listen(8080);

1 个答案:

答案 0 :(得分:3)

http://nodejs.org/api/http.html#http_response_writehead_statuscode_reasonphrase_headers

  

“此方法只能在消息”

上调用一次

只需在设置内容类型的res.WriteHead调用中添加Set-Cookie标头:

    res.writeHead(200, {
      'Content-Type': 'image/gif',
      'Set-Cookie' : '…'
    });