Ajax代码在IE中不起作用

时间:2011-07-13 12:33:15

标签: javascript ajax

<script type="text/javascript">
function showState(str){
    if (str.length==0){ 
        document.getElementById("txtHint").innerHTML="";
        return;
    }
    if (window.XMLHttpRequest){
        // code for IE7+, Firefox, Chrome, Opera, Safari
        xmlhttp=new XMLHttpRequest();
    } else{
        // code for IE6, IE5
        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }

    xmlhttp.onreadystatechange=function(){
        if (xmlhttp.readyState==4 && xmlhttp.status==200){
            document.getElementById("state").innerHTML=xmlhttp.responseText;
        }
    }

    xmlhttp.open("GET","getState.php?cid="+str,true);
    xmlhttp.send();
}
</script>

此代码在IE中不起作用,但在mozilla和chrome

中很好

2 个答案:

答案 0 :(得分:2)

您必须在xmlhttp-Object上调用send(null)。 只需添加

xmlhttp.send(null);

这实际上会发送请求。

答案 1 :(得分:0)

您是否尝试过以下操作:

function createXMLHttpRequest(){
    var xmlHttp = null;
    if(typeof XMLHttpRequest != "undefined"){
        xmlHttp = new XMLHttpRequest();
    }
    else if(typeof window.ActiveXObject != "undefined"){
        try {
            xmlHttp = new ActiveXObject("Msxml2.XMLHTTP.4.0");
        }
        catch(e){
            try {
                xmlHttp = new ActiveXObject("MSXML2.XMLHTTP");
            }
            catch(e){
                try {
                    xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
                }
                catch(e){
                    xmlHttp = null;
                }
            }
        }
    }
    return xmlHttp;
}

来源(http://robertnyman.com/2007/04/04/weird-xmlhttprequest-error-in-ie-just-one-call-allowed/)