Ajax仅在IE中工作

时间:2012-02-02 19:11:09

标签: javascript ajax internet-explorer firefox google-chrome

如果我使用的AJAX在IE浏览器上完美运行但在Google Chrome或Firefox上根本不起作用,有人可以告诉我哪些主要区别或者我应该寻找的方面?

是否有一些IE接受的东西,但其他人不接受?或者,为了适用于所有浏览器,我应该添加任何代码吗?

我不知道这是否会影响某些事情,但我正在与PYTHON合作!

以下是所有Ajax函数用作基础的代码:

var xmlhttp;
var request = true;

function GetXmlHttpObject() {
    try {
        request = new XMLHttpRequest();
    } catch (trymicrosoft) {
        try {
        request = new ActiveXObject("Msxml12.XMLHTTP");
        } catch (othermicrosoft) {
            try {
            request = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (failed) {
            return false; //or null
            }
        }
    }
    if (!request) 
    alert ("Error initializing XMLHTTPRequest!");
    return request;
}

执行此操作后,我使用常规Javascript函数,其中包含以下内容:

var url = 'evaluacionDesempenoBD.py?cadena=' + cadena + '&comentario=' + comentario + '&idEvaluacion=' + idEvaluacion + '&seccion=' + seccion;

xmlhttp = GetXmlHttpObject();
if (!xmlhttp) {
   alert ("Browser does not support HTTP Request");
   return;
}
var xml = xmlhttp;
xmlhttp.open("GET",url,true);
xmlhttp.send(null);'''

我希望我清楚自己 非常感谢!

2 个答案:

答案 0 :(得分:3)

您可能使用ActiveX AJAX对象,而不是所有浏览器都支持的本机实现。

使用new XMLHttpRequest()在具有本机实现的浏览器上创建AJAX对象。

答案 1 :(得分:2)

Wikipedia在XMLHttpRequest上有an awesome article,其中包含一些示例代码,可以帮助您在所有浏览器中使用AJAX。

由于浏览器在XMLHttpRequest对象内部方面的差异,尤其是您处理状态更改的方式,可能会遇到问题。 Quirksmode对此有a document