Ajax在IE上请求ERROR

时间:2010-06-16 09:14:50

标签: javascript ajax

我在IE浏览器上遇到一个小问题(实际上在Google Chrome上也是如此) 我有这个js代码

function createDoc(url) {
    var xhttp = ajaxRequest();
    var currentLocationBase = window.location.href;
    currentLocationBase = currentLocationBase.substr(0,currentLocationBase.lastIndexOf("/") + 1);
    var u  = currentLocationBase + url;

    xhttp.open("GET", u, false);
    xhttp.send(null);

    var xml = xhttp.responseXML;
    return xml;
}

/**
* Builds an AJAX reques handler.
*
* @return The handler.
*/
function ajaxRequest() {
    var xhttp = null;
    if (window.XMLHttpRequest) {
        xhttp = new XMLHttpRequest();
    } else if (window.ActiveXObject){     
        // Internet Explorer 5/6
        xhttp = new ActiveXObject("Microsoft.XMLHTTP");
    } else {
    }
    return xhttp;
}

在Firefox中,此代码效果很好,但在IE和Google Chrome中却没有 似乎错误是在

行给出的
xhttp.open("GET", u, false);

任何人都可以帮我理解我做错了什么吗? 感谢

2 个答案:

答案 0 :(得分:0)

由于Ajax是异步的,因此您需要在onreadystatechange代码中处理代码和响应。试试w3schools examples

看起来你正在发送请求,就在读取responseXML之后,这必然会导致问题

xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
    }
  }
xmlhttp.open("GET","ajax_info.txt",true);
xmlhttp.send();

答案 1 :(得分:0)

为什么不部署jQuery?附带优化的AJAX stack,无需进行特定于浏览器的嗅探。你确实会在图书馆收录中获得更多的应用程序权重,但这肯定是值得的。