gpt4 book ai didi

javascript - Firefox WebExtensions : can not get canceled request data

转载 作者:搜寻专家 更新时间:2023-11-01 04:35:24 24 4
gpt4 key购买 nike

在使用 Firefox WebExtensions 的过程中,我创建了一个简单的附加组件,可以取消某些 POST 请求并读取其参数:

list .json

{
"description": "Canceled webRequests data",
"manifest_version": 2,
"name": "webRequest-demo",
"version": "1.0",

"permissions": [
"webRequest",
"webRequestBlocking",
"http://kamil.hism.ru/pocs/*"
],

"background": {
"scripts": ["background.js"]
}
}

background.js

var pattern = "http://kamil.hism.ru/pocs/simple_form_action";

function cancel(requestDetails) {
console.log("Canceling: " + requestDetails.url);
console.log(requestDetails.requestBody.formData.some_field)
// debugger
return { cancel: true };
}

browser.webRequest.onBeforeRequest.addListener(
cancel,
{ urls:[pattern] },
["requestBody", "blocking"]
);

带有表单的目标页面位于:http://kamil.hism.ru/pocs/simple_form.html

requestDetails 包含 requestBody,它应该包含包含所有传递数据的 formData 对象。在 Chrome 中它运行良好,但在 Firefox 中 requestBody 仅包含带有 ArrayBuffer 对象的 raw 数组。我尝试使用 String.fromCharCode.apply(null, new Uint16Array(requestDetails.requestBody.raw[0])); 将其转换为字符串,但它返回空字符串。

所以,问题是:有人知道如何解决该问题并使用 Firefox WebExtension 附加组件从已取消的请求中获取所有数据吗?也许这是 Mozilla 的 WebExtensions 实现中的一些错误?

最佳答案

随着help Mozilla 社区发现这实际上是 Firefox WebExtensions 中的一个错误。虽然我在 bugzilla 中找不到与之相关的确切发行说明或错误,Firefox Nightly build (53.0a) 没有这个问题:

enter image description here

希望 Nightly 的这些更改很快会合并到发布 channel 中。

关于javascript - Firefox WebExtensions : can not get canceled request data,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41522451/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com