我正在使用 AddOn SDK 构建一个 Mozilla AddOn。我需要做一个 AJAX 帖子,所以我使用XMLHttpRequest
. 在Mozilla 的文档中,它说XMLHttpRequest
无法使用 XMLHttpRequest() 构造函数进行实例化。构造函数未在组件内部定义,代码会导致错误。解决此问题的最佳方法是使用 XPCOM 组件构造函数。
文档说这样做:
const XMLHttpRequest = Components.Constructor["@mozilla.org/xmlextras/xmlhttprequest;1"];
var oReq = new XMLHttpRequest();
美好的。所以我完全按照文档中显示的方式实现代码:
var { Cc, Cu, Ci, Cr, Cm, components } = require('chrome');
const XMLHttpRequest = components.Constructor["@mozilla.org/xmlextras/xmlhttprequest;1"];
. . .
var oReq = new XMLHttpRequest();
我在这一行得到“ XMLHttpRequest 不是构造函数”错误。
我错过了什么?我在这里做错了什么?我不能使用“ Components.Constructor["@...
”方式,因为生成.xpi
文件的 AddOn SDK CLI 工具会抱怨,说
使用“组件”访问 chrome 权限。为此,您需要添加类似于以下内容的行:
const {components} = require("chrome");
然后,您可以使用从“chrome”模块导入的属性的任何快捷方式(“类”、“接口”、“ manager'、'results' 和 'utils' 属性。以及
components
对象Components
本身)。
好的。我确实require(chrome)
在我的文件顶部有调用,并生成快捷方式,然后 amusing components
,这是正确的形式,并且来自 AddOn 编译器的消息说要使用它。然而我得到了错误。
非常感谢任何帮助。