我试图修改请求的请求正文,以在Google文档中显示研究工具。我能够在每个匹配的请求上触发,并拉取form_data请求正文,但我没有看到任何修改请求正文并将其传递的方法。我需要做的就是将docs-show_reference更改为false。
阻止请求不起作用,因为页面会再次启动请求,从而导致循环。我似乎无法正确修改请求标头以阻止请求,因为唯一需要更改的是在form_data请求体内。它似乎也不会通过chrome.webRequest返回修改后的请求正文
该扩展程序还会阻止所有非文档地址(也正在运行)。
这是我使用的代码(启动重定向循环)。 manifest.json中的所有权限和配置也正常工作。
chrome.webRequest.onBeforeRequest.addListener(
function(info) {
var request = info.requestBody;
if (info.url.indexOf(chrome.runtime.id) > -1) {
console.log("popup: %s",info.url);
return;
}
if (info.url.indexOf("docs.google.com") > -1){
if (request && request.formData && request.formData.preferences && request.formData.preferences[0] == '{"docs-show_reference":true}') {
return {cancel:true};
} else {
return {cancel:false};
}
}
if (info.url.indexOf('gstatic') > -1) {
return {cancel:false};
}
console.log("blocked: %s",info.url);
return {redirectUrl:chrome.extension.getURL("blocked.png")};
},
// filters
{
urls: [
"<all_urls>"
]
},
// extraInfoSpec
["blocking", "requestBody"]
);