首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用node-http-proxy访问响应头

使用node-http-proxy访问响应头
EN

Stack Overflow用户
提问于 2013-05-28 13:32:33
回答 1查看 1.3K关注 0票数 1

我正在尝试在使用node-http-proxy创建的代理的帮助下修改响应。但是,我无法访问响应头。我想访问响应头,因为我想修改javascript文件并将修改后的javascript文件发送到客户端。

这是我的代码:

代码语言:javascript
复制
var httpProxy = require('http-proxy');
var url = require('url');
var i = 0;

httpProxy.createServer(function(req, res, next) {
    var oldwriteHead = res.writeHead;
    res.writeHead = function(code, headers) {
        oldwriteHead.call(res, code, headers);
        console.log(headers); //this is undefined
    };
    next();
}, function(req, res, proxy) {
    var urlObj = url.parse(req.url);

    req.headers.host = urlObj.host;
    req.url = urlObj.path;

    proxy.proxyRequest(req, res, {
        host: urlObj.host,
        port: 80,
        enable: {xforward: true}
    });
}).listen(9000, function() {
    console.log("Waiting for requests...");
});
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-28 13:55:20

writeHead()不一定要使用标头数组来调用,如果需要,write()也可以发送标头。

如果您想访问(或设置)标头,您可以使用以下命令:

代码语言:javascript
复制
res.writeHead = function() {
  // To set:
  this.setHeader('your-header', 'your-header-value');

  // To read:
  console.log('Content-type:', this.getHeader('content-type'));

  // Call the original method !!! see text
  oldwriteHead.apply(this, arguments);
};

我使用apply()将所有参数传递给旧方法,因为writeHead()实际上可以有3个参数,而您的代码只假设有2个参数。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16784526

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档