修改请求正文

时间:2015-12-24 05:56:10

标签: google-chrome-extension

我试图修改请求的请求正文,以在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"]
);

1 个答案:

答案 0 :(得分:2)

根据Issue 91191,我们现在无法修改Chrome扩展程序中的表单数据。