我正在尝试向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 );
答案 0 :(得分:1)
可能会忽略与代理相关的标头。
引用docs:
请注意,Web请求API会向扩展程序提供网络堆栈的抽象。在内部,一个URL请求可以分成几个HTTP请求(例如,从大文件中获取单个字节范围),或者可以由网络堆栈处理,而无需与网络通信。因此,API不提供发送到网络的最终HTTP标头。例如,与缓存相关的所有标头都对扩展名不可见。
没有被忽略的标题的完整列表,但有些标题列在文档中。常识性标准:如果它代表有关网络的知识(缓存,代理等),则API无法触及它。