Ajax-код не работает в IE - PullRequest
0 голосов
/ 13 июля 2011
<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 ]

2 голосов
/ 13 июля 2011

Вы должны вызвать send (null) для объекта xmlhttp.Просто добавьте

xmlhttp.send(null);

Это фактически отправит запрос.

0 голосов
/ 13 июля 2011

Вы пробовали следующее:

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/)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...