我想在Chrome扩展程序中阅读和修改(添加)HTTP标头。我正在使用chrome.webRequest API。但我仍然无法阅读它。这是我的代码。
chrome.webRequest.onBeforeSendHeaders.addListener(
function(details) {
details.requestHeaders.push({name:"dummyHeader",value:"1"});
return {requestHeaders: details.requestHeaders};
},
{urls: ["<all_urls>"]},
["requestHeaders"]
);
我缺少什么?
答案 0 :(得分:4)
您需要将"blocking"
标志添加到ExtraInfoSpec列表以暂停请求。如果没有此标志,则忽略onBeforeSendHeaders
事件侦听器的返回值。
chrome.webRequest.onBeforeSendHeaders.addListener(
function(details) {
details.requestHeaders.push({name:"dummyHeader",value:"1"});
return {requestHeaders: details.requestHeaders};
},
{urls: ["<all_urls>"]},
["requestHeaders", "blocking"]
//^^^^^^^^
);
我建议您仔细阅读文档,尤其是Registering event listeners部分。
答案 1 :(得分:1)
但是,对于所有人稍后阅读,它不是XmlHttpRequest的解决方案。
不明显,但异步请求不能阻止。有关此问题的更多信息,请参阅issiue 132731 如果您需要更改XmlHttpRequest的请求标头,则必须使用declarativeWebRequest
您可以在Chrome Rest Client background page(declarativeRequest.setRules()函数)中找到的实施示例。