Javascript 在Chrome扩展中,更改发送到特定域的ajax请求的引用者?
我做了一些研究,现在我知道不可能在Google Chrome中发送带有更改的推荐人的请求,因为浏览器将覆盖更改,但是Google Chrome扩展中是否有/任何权限会禁用此功能,或者这样做,以便您可以使用不同的推荐人向某个域发送请求?是您正在寻找的,特别是在SendHeaders事件之前。它允许您在发送请求之前更改任何标题(即使是不安全的标题),但只能在后台脚本中使用 您需要将Javascript 在Chrome扩展中,更改发送到特定域的ajax请求的引用者?,javascript,jquery,google-chrome,google-chrome-extension,Javascript,Jquery,Google Chrome,Google Chrome Extension,我做了一些研究,现在我知道不可能在Google Chrome中发送带有更改的推荐人的请求,因为浏览器将覆盖更改,但是Google Chrome扩展中是否有/任何权限会禁用此功能,或者这样做,以便您可以使用不同的推荐人向某个域发送请求?是您正在寻找的,特别是在SendHeaders事件之前。它允许您在发送请求之前更改任何标题(即使是不安全的标题),但只能在后台脚本中使用 您需要将webRequest和webRequestBlocking添加到清单中的权限列表中 chrome.webRequest.
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与列表中的URL匹配的URL启动句柄
extraInfoArray
告诉它你想获取requestHeaders
,而阻塞
告诉它暂停请求直到句柄完成。假设这是可能的,你会如何处理,请用户更改他们的Chrome设置?这是个人使用的,我只是希望能够发送来自某个推荐人的请求。但是,是否可以更改浏览器设置以不覆盖推荐人?如果是这样的话,如何做到这一点?从chrome 72开始,还必须将“extraHeaders”添加到extraInfoArray中,以便设置以下标题:接受语言、接受编码、引用器、Cookie我已经在background.js中实现了此代码和控制台,它反映了更改的引用器,但是,当打开开发者工具或单击某个链接时,我如何在页面中检查相同的内容。我将上述代码(具有上述权限)按原样粘贴到我的background.js
文件中。刚刚更改了目标URL
。这是行不通的。此外,我无法将后台持久化
设置为假
,因为它不会在事件页面上运行。必须将其设置为true
才能运行。请帮忙。