node-http-proxy设置img请求头

时间:2015-04-02 18:57:43

标签: angularjs http-headers npm src node-http-proxy

是否可以使用node-http-proxy为img src属性设置请求标头?我收到401错误,因为我的服务器期待一个头属性:每个请求的值,包含img src属性。我正在为index.js文件中的所有请求设置标头,但是没有为img请求设置标头。我正在尝试检查请求是否是针对图像的,然后在使用node-http-proxy发送请求之前设置标头。

  // index.js -- works for non img src requests
  if ($rootScope.foobar_header !== undefined) {
    headersGetter()['X-Special-Proxy-Header'] = $rootScope.foobar_header; 
  }
  if (data) { 
      return angular.toJson(data);
  }

function proxyMiddleware(req,res,next){

  if (req.url.indexOf(proxyApiPrefix) !== -1) {
      if (req.url.indexOf(proxyImgPrefix) !== -1) {
        console.log('img request');
        proxy.on('proxyReq', function(proxyReq, req, res, options) {
            proxyReq.setHeader('X-Special-Proxy-Header', 'foobar_header');
        });
      }
    proxy.web(req, res);
  } else {
    next();
  }
}

1 个答案:

答案 0 :(得分:0)

我认为您需要在运行服务器之前设置proxy.on...位,而不是在某些中间件内部,尽管如果没有看到更多代码,很难确定。

docs表明您可以执行以下操作:

proxy.on('proxyReq', function(proxyReq, req, res, options) {
  if (req.url.indexOf(proxyApiPrefix) !== -1) {
    if (req.url.indexOf(proxyImgPrefix) !== -1) {
      console.log('img request');
      proxyReq.setHeader('X-Special-Proxy-Header', 'foobar_header');
    }
  }
});
相关问题