簡體   English   中英

Internet Explorer 8中有一個Javascript / Ajax錯誤消息! 順便說一下,這不是令人震驚的部分

[英]there's a Javascript/Ajax error message in Internet Explorer 8! by the way this is not the shocking part

function a (){
    var b = null;
    if(window.XMLHttpRequest) b = new XMLHttpRequest();
    else if(window.ActiveXObject) b = new ActiveXObject("Microsoft.XMLHTTP");
    if(!b) b = new ActiveXObject("msxml2.XMLHTTP");
    return b;
}
var b=a();
function c(){
    var u = "ajax3_php.php?w="+ parseInt(Math.random()*88888);
    b.onreadystatechange = function (){
        if(b.status == 200 && b.readyState == 4){
            document.getElementById("divid").innerHTML = b.responseText;
        }
    }
    b.open("get", u, true);
    b.send();
}

在目標頁面“ ajax3_php.php”上:

<?php
echo "OK";
?>

並在“分開” ID上
<div id =“ divid”>測試</ div>

錯誤消息是:

Message: Unspecified error.
Line: 20
Char: 3
Code: 0
URI: http://localhost/lat1/ajax/ajax3.php

令人震驚的是,這是第20行:

if(b.status == 200 && b.readyState == 4){


怎么了
僅供參考:螢火蟲什么也沒說。

這段代碼似乎可以解決問題。

function a()
{
    var b = null;
    if(window.XMLHttpRequest)
    {
        b = new XMLHttpRequest();
    }else if(window.ActiveXObject)
    {
        b = new ActiveXObject("Microsoft.XMLHTTP");
    }
    if(!b)
    {
        b = new ActiveXObject("msxml2.XMLHTTP");
    }
    return b;
}
var b = a();
function c()
{
    var u = "ajax3_php.php?w="+ parseInt(Math.random()*88888, 10);
    b.open("get", u, true);
    b.onreadystatechange = function ()
    {
        if(b.readyState === 4)
        {
            if(b.status === 200)
            {
                if(b.responseText)
                {
                    document.getElementById("divid").innerHTML = b.responseText;
                }
            }   
        }
    };
    b.send();
}

c();

對於為何突然彈出錯誤,我沒有靈丹妙葯的答案,但是當readyState不是4時,對b.status的調用將b.status錯誤。 但是,該特定錯誤是我最近通過innerHTML向IE 8中的元素發送空字符串時遇到的一種錯誤(但錯誤類型不同)(我懷疑您的responseText為空,從而導致該錯誤)。

我自由地為您修復了該代碼(以及其他一些修飾)。 IE 7-8,Quirks或無錯誤。

我希望這可以幫助你。

-馬特

編輯:我偶然發現了這個MSDN帖子。 奇怪的是,他們的示例代碼像我一樣使用嵌套的if塊,但沒有解釋。 我會進一步調查。

鏈接: http//msdn.microsoft.com/en-us/library/dd576252%28v=vs.85%29.aspx

暫無
暫無

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

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