我正在编写FireFox-Extension并希望从服务器加载数据。但是当我尝试使用:
初始化XMLHttpRequest时var request = new XMLHttpRequest();
错误控制台说:
ReferenceError: XMLHttpRequest is not defined
我是否必须包含某些内容或为何无法识别XMLTttpRequest?
答案 0 :(得分:10)
附加SDK(您通过附加组件间接使用)提供request
package,它本质上是XMLHttpRequest
的包装,您应该使用它。根据我的理解,如果在执行请求时卸载/禁用了加载项,则不会直接XMLHttpRequest
访问以防止出现问题。
答案 1 :(得分:3)
要使用XMLHttpRequest构造函数,您应该添加XPCOM组件构造函数:
const XMLHttpRequest = Components.Constructor("@mozilla.org/xmlextras/xmlhttprequest;1", "nsIXMLHttpRequest");
之后:
// some code
var req = new XMLHttpRequest();
// some code
有关MDN
的更多信息答案 2 :(得分:1)
看来弗拉迪米尔的答案对大多数此类案件都很有用。但还有一个案例。
我发现tris页面试图在Firefox 16下解决此错误的问题。奇怪,但我从未在Firefox 15下看到此错误。
我在 某些 页面的内容脚本中遇到此错误。脚本在开始时注入:
contentScriptWhen : "start",
在某些情况下,窗口对象未正确初始化。所以,我刚刚从头到尾更改了脚本加载。在我的情况下,这是可能的。问题已经消失......
我不知道它出现的原因,但知道解决方案并希望它对某人有用。