-4

先生有一些问题。我在codeigniter中的mac系统上工作这个ajax代码在google chrome上工作,但在firefox上工作我的firefox属性是Mozilla/5.0(Macintosh;U;Intel Mac OS X 10.6;en-US;rv:1.9.0.19)Gecko/2010031218火狐/3.0.19

<script>
function showUser(str)
{ 
    if (str=="")
    {
        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)
        { 
            // alert(xmlhttp.responseText);
            document.location.reload(true);

            document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
        }
    }
    xmlhttp.open("POST","http://localhost/first_project/index.php/admin/selectUser/blank?q=" + str,true);
    xmlhttp.send();
}
</script>

请给我解决方案。提前致谢。

4

1 回答 1

4

这毫无意义

        document.location.reload(true);  <-- reload the document

        document.getElementById("txtHint").innerHTML=xmlhttp.responseText;  <--set text

当您重新加载文档时,有理由设置页面的文本。页面正在退出。如果要重新加载页面,为什么要发出 Ajax 请求?如果您要这样做,只需使用正常的表单提交即可。

更改功能以查看发生了什么

xmlhttp.onreadystatechange = function () { 
    if (xmlhttp.readyState==4) {
        if (xmlhttp.status==200) { 
            // alert(xmlhttp.responseText);
            document.location.reload(true);
            //document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
        } else {
            //console.error(xmlhttp.status + "\t" + xmlhttp.statusText);
            alert(xmlhttp.status + "\t" + xmlhttp.statusText);
        }
    }
};
于 2012-11-09T13:48:00.953 回答