簡體   English   中英

IE 9 Javascript錯誤c00c023f

[英]IE 9 Javascript error c00c023f

我只在IE9上遇到此錯誤:

SCRIPT575:由於錯誤c00c023f無法完成操作。

錯誤發生在這一行: if ((a.responseXML) && (a.readyState==4)) {

我無法弄清楚為什么會發生這種情況,而且它似乎在其他瀏覽器中運行良好。

這是我的javascript代碼:

var a = new XMLHttpRequest();
a.open("GET",'/cust/ajax/getresult.php?qk=nnf87&arg1='+pzid,true);
a.onreadystatechange = function () {
    if ((a.responseXML) && (a.readyState==4)) {
        var N = a.responseXML.getElementsByTagName('result')
        sequence = N[0].firstChild.data;
        var SEQ = sequence.split(",");
        var num = SEQ.length;
                    var sum = 0;
                    for(var n=0;n<num;n++){sum = sum + (SEQ[n]*1);}
        //document.getElementById("the_number_of").innerHTML = sum;
        var date = new Date();
        date.setTime(date.getTime()+(2*60*60*1000));
        document.cookie='cpa_num='+sum+'; expires= '+date.toGMTString()+'; path=/';
    }

}

我不認為你的請求被中止了? 一篇快速的谷歌搜索發現了這篇博文。 在嘗試從XMLHttpRequest對象讀取任何屬性時,IE9中的中止請求似乎會出現此錯誤。

從帖子中,他們對此錯誤代碼的特殊問題可以通過以下方式復制:

  • 創建XMLHttpRequest對象
  • 分配onreadystatechanged事件處理程序
  • 執行請求
  • 在處理響應之前中止請求

您現在將看到將調用readystatechange處理程序,並將readystate屬性設置為“4”。 任何讀取XmlHttpRequest對象屬性的嘗試都將失敗。

作者通過在執行手動中止時為請求分配中止狀態,並在嘗試讀取任何其他屬性之前檢測並返回,來緩解此問題。 雖然這種方法只有在您自己執行中止時才能真正起作用。

此WebSync Google Groups帖子中記錄了類似的問題。 在討論即將結束時,有一個暗示只會出現這個問題

如果您已經設置了標准和IE9渲染模式

希望指出你正確的方向。

在readyState == 4例程中,包含一個try和catch類似於:

try {
    var response=xmlHttp.responseText;
    }
catch(e) {
    var response="Aborted";
}

我們發現這是上述最成功的解決方案。

切換

if ((a.responseXML) && (a.readyState==4))

if ((a.readyState==4) && (a.responseXML))

因為訂單很重要。 似乎在IE9上如果狀態不是4,那么如果被訪問則responseXML和reponseText會產生這個錯誤(我不知道為什么......)

我在我的框架中遇到了這個錯誤。 它只出現在IE中(去圖)。 我只是將響應包裝如下:

if(request.readyState == 4)
{
  // get response
  var response = request.responseText;
}

當我提前讀取“status”屬性時(在readyState為4 / DONE之前),IE9就會發生這種情況。

暫無
暫無

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

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