簡體   English   中英

IE上的Ajax請求錯誤

[英]Ajax request ERROR on IE

我在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);

誰能幫助我了解我在做什么錯? 謝謝

由於Ajax是異步的,因此您需要在onreadystatechange代碼中處理代碼和響應。 嘗試w3schools示例

看起來您正在發送請求,並且在讀取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();

您為什么不部署jQuery? 帶有優化的AJAX堆棧 ,無需進行特定於瀏覽器的嗅探。 確實,應用程序在庫包含方面的作用更大,但是絕對值得。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM