Chrome WebAPIchrome.webRequest.onBeforeSendHeaders不更改传出请求中的参数

时间:2015-04-22 21:28:45

标签: javascript google-chrome google-chrome-extension

我正在尝试向requestHeader中的X-Forwarded-For参数添加IP和IP,但我的代码根据Chrome API上的示例没有这样做。

我有以下代码:

var requestFilter = {
    urls: [ "<all_urls>" ]
  },

  extraInfoSpec = ['requestHeaders', 'blocking'],

  handler = function( details ) {

var headers = details.requestHeaders,
  blockingResponse = {};

  var isXForwardedForSet = false;

for (var i = 0, l = headers.length; i < l; ++i) {
  if (headers[i].name === 'X-Forwarded-For') {
      headers[i].value = "42.104.0.0";
      isXForwardedForSet = true;
      break;
  }
}

if (!isXForwardedForSet) {
    headers.push({
        name: "X-Forwarded-For",
        value: "42.104.0.0"
    });
}

blockingResponse.requestHeaders = headers;

   return blockingResponse;

  };

chrome.webRequest.onBeforeSendHeaders.addListener( handler, requestFilter,      extraInfoSpec );

1 个答案:

答案 0 :(得分:1)

可能会忽略与代理相关的标头。

引用docs

  

请注意,Web请求API会向扩展程序提供网络堆栈的抽象。在内部,一个URL请求可以分成几个HTTP请求(例如,从大文件中获取单个字节范围),或者可以由网络堆栈处理,而无需与网络通信。因此,API不提供发送到网络的最终HTTP标头。例如,与缓存相关的所有标头都对扩展名不可见。

没有被忽略的标题的完整列表,但有些标题列在文档中。常识性标准:如果它代表有关网络的知识(缓存,代理等),则API无法触及它。