问题描述
在我的插件中,我总是使用新的XMLHttpRequest(),它完美的工作。现在所有请求ajax停止工作。
当前新的XMLHttpRequest()导致以下错误:ReferenceError:XMLHttpRequest未定义
因此,我将代码更改为:
try {
var XMLHttpRequest;
if(typeof(XMLHttpRequest)==undefined)
XMLHttpRequest = content.XMLHttpRequest;
}
catch(e){
alert(e);
}
var xmlhttp = new XMLHttpRequest();
...
有时候请求通常有效,但有时候不会。
代码alert(e);这是没有执行,那么没有错误那里。
我不明白为什么有时它有效,有时不。
之前我只用了 var xmlhttp = new XMLHttpRequest(); ,并且一直工作。
现在我该如何创建一个新的ajax请求?
正如我在评论中所说的,当你在浏览器窗口的上下文中运行时覆盖到那个窗口),那么 XMLHttpRequest
一定是可用的。但是,如果一切都失败了,你仍然可以直接实例化对应于XMLHttpRequest的XPCOM组件:$ / $> $ / $> $ / $> $ / $> b
$ b
var xmlhttp = Components.classes [@ mozilla.org/xmlextras/xmlhttprequest; 1]
.createInstance(Components.interfaces.nsIXMLHttpRequest);
xmlhttp.open(...);
In my addons I always used new XMLHttpRequest () and it worked perfectly.Now all requests ajax stopped working.
Currently new XMLHttpRequest () is causing the following error: ReferenceError: XMLHttpRequest is not defined
So I changed my code to:
try {
var XMLHttpRequest;
if (typeof(XMLHttpRequest) == "undefined")
XMLHttpRequest = content.XMLHttpRequest;
}
catch (e) {
alert(e);
}
var xmlhttp = new XMLHttpRequest();
...
Sometimes the request usually works, but sometimes not.
The code "alert(e);" is never executed, then there is no error there.
I can not understand why sometimes it works and sometimes not.Previously I used only var xmlhttp = new XMLHttpRequest(); and always worked.
Now how do I create a new ajax request?
As I said in a comment, when you are running in the context of a browser window (like code loaded by an overlay to that window) then XMLHttpRequest
should definitely be available. I verified that just in case and it works for me.
But in case everything else fails you can still instantiate the XPCOM component corresponding to XMLHttpRequest directly:
var xmlhttp = Components.classes["@mozilla.org/xmlextras/xmlhttprequest;1"]
.createInstance(Components.interfaces.nsIXMLHttpRequest);
xmlhttp.open(...);
这篇关于XMLHttpRequest()在最新版本的Firefox中不起作用?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!