我正在尝试构建一个firefox插件,用户填写表单并将其提交给服务器。我想知道如何从服务器访问响应。在这个例子中,响应是“成功”,"createAccount“
在单击submit之后,在原始数据选项卡中,我可以在这个小弹出窗口中看到数据。(见图)。

我只是不知道如何从我的代码中访问它。这看起来应该很简单,但我想不出来。
我试图重写onsubmit和onclick方法/侦听器,通过ajax/XMLHttpRequest路由它们,但是我得到了一个内容安全错误(:页面的设置阻止了self上的资源加载(“script-src”))。源:按钮元素上的onclick属性。)
我看过其他这样的帖子,没有一篇是专门用于评论形式的回复的。
任何帮助都是非常感谢的。
发布于 2018-07-04 20:31:40
答案是使用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"]);然后,rawdata将具有正确的值。感谢你为我指明了正确的方向。
arrayBufferToData来自这里
不幸的是,这只适用于firefox,而不是chrome。
https://stackoverflow.com/questions/51145897
复制相似问题