chrome.webRequest就是你要找的,特别是你onBeforeSendHeaders
事件。它将允许您在发送请求之前更改任何标头(甚至是不安全的标头),但只能在后台脚本中使用。
你需要添加webRequest
and webRequestBlocking
到清单中的权限列表。
chrome.webRequest.onBeforeSendHeaders.addEventListener(handle(details), filterObject, extraInfoArray);
这是一个例子:
chrome.webRequest.onBeforeSendHeaders.addListener(function(details){
var newRef = "http://referer.domain/helloworld.example";
var gotRef = false;
for(var n in details.requestHeaders){
gotRef = details.requestHeaders[n].name.toLowerCase()=="referer";
if(gotRef){
details.requestHeaders[n].value = newRef;
break;
}
}
if(!gotRef){
details.requestHeaders.push({name:"Referer",value:newRef});
}
return {requestHeaders:details.requestHeaders};
},{
urls:["http://target.domain/*"]
},[
"requestHeaders",
"blocking",
"extraHeaders"
]);
The filterObject
告诉它仅触发与列表中的 URL 匹配的任何 URL 的句柄。
The extraInfoArray
告诉它你想要得到requestHeaders
, and blocking
告诉它暂停请求,直到句柄完成。