在 Chrome 扩展中,更改发送到特定域的 ajax 请求的引荐来源网址?
In Chrome Extension, change referrer for ajax requests sent to certain domain?
我做了一些研究,现在我知道无法在 Google Chrome 中发送带有更改引荐来源网址的请求,因为浏览器会覆盖更改,但是 [= Google Chrome 扩展中的 14=] 权限将禁用此功能,或者使您可以使用不同的引荐来源网址向特定域发送请求?
chrome.webRequest 是您要查找的内容,特别是 onBeforeSendHeaders
活动。它将允许您在发送请求之前更改任何 headers(甚至是不安全的),但只能在后台脚本中使用。
您需要将 webRequest
和 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"
]);
filterObject
告诉它只触发与列表中的 url 匹配的句柄。
extraInfoArray
告诉它你想得到requestHeaders
,blocking
告诉它暂停请求直到句柄完成。
我做了一些研究,现在我知道无法在 Google Chrome 中发送带有更改引荐来源网址的请求,因为浏览器会覆盖更改,但是 [= Google Chrome 扩展中的 14=] 权限将禁用此功能,或者使您可以使用不同的引荐来源网址向特定域发送请求?
chrome.webRequest 是您要查找的内容,特别是 onBeforeSendHeaders
活动。它将允许您在发送请求之前更改任何 headers(甚至是不安全的),但只能在后台脚本中使用。
您需要将 webRequest
和 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"
]);
filterObject
告诉它只触发与列表中的 url 匹配的句柄。
extraInfoArray
告诉它你想得到requestHeaders
,blocking
告诉它暂停请求直到句柄完成。