我如何从 firefox 插件中的表单 post 访问原始数据响应?

How do i access raw data response from a form post in a firefox addon?

我正在尝试构建一个 firefox 插件,用户可以在其中填写表单并将其提交到服务器。我想知道如何访问从服务器返回的响应。在此示例中,响应为 ["SUCCESS"、"createAccount"]

我在“原始数据”选项卡中单击“提交”后出现的这个小弹出窗口中看到了数据。 (见图)。

我只是不知道如何从我的代码中访问它。这看起来应该很简单,但我想不通。

我已尝试覆盖 onsubmit 和 onclick methods/listeners 以通过 ajax/XMLHttpRequest 路由它们,但我收到内容安全错误(内容安全策略:页面设置被阻止在自身加载资源(“script-src”)。来源:BUTTON 元素上的 onclick 属性。)

我看过其他 SO 帖子,none 其中专门针对插件中表单的回复。

感谢任何帮助。

答案是使用webRequests.filterResponseData.

代码是这样的:

    var rawdata;
    var listener = function(result){
      let filter = chrome.webRequest.filterResponseData(result.requestId);  //https://developer.mozilla.org/en-US/Add-ons/WebExtensions/API/webRequest/filterResponseData
      filter.ondata = event => {
      self.data = {
          data: Array.apply(null, new Uint8Array(event.data)),

          contentType: result.type
      };
      rawdata = arrayBufferToData.toJSON(event.data);  

      }
       filter.onstop = event => {
       filter.disconnect();
      }

    }
  browser.webRequest.onHeadersReceived.addListener(listener, {urls: ["<all_urls>"]},["blocking"]);

原始数据将具有正确的值。 感谢 icecub 指出正确的方法。

arrayBufferToData 来自 here

不幸的是,这仅适用于 firefox,不适用于 chrome。