2015-12-24 134 views
0

我试图修改的请求的请求体显示在谷歌文档的研究工具。我能够触发每个匹配的请求,并拉取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

Issue 91191,我们不能在浏览器扩展程序修改表单数据了。