日期:2014-05-16  浏览次数:20609 次

为什么这段ajax代码在IE上正常却在火狐下不行???
HTML code
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head>
<script type="text/javascript">
    window.onerror=function(){
        alert("error");    
    }
    window.onload=function(){
        var odiv=document.getElementById("responsetext");
        var XHR,str;
        str=(function(){
                return "name=peter&age=18";
            })();
        if(window.ActiveXObject){
            XHR=new ActiveXObject("Microsoft.XMLHTTP");    
        }
        else if(window.XMLHttpRequest) XHR=new XMLHttpRequest();
            XHR.onreadystatechange=function(){
            if(XHR.readystate==4&&XHR.status==200){
                odiv.innerHTML=XHR.responseText;
            }
        }
        XHR.open("GET","ajax3.asp?"+str,true);
        XHR.send();
    }
</script>
<body>
<div id="responsetext"></div>
</body>
</html>



以上代码在IE上正常,火狐遨游不正常;如果把window.ActiveXObject和window.XMLHttpRequest倒过来就连IE也不正常;

我说的不正常是一片空白,正常是会显示东西的,显示peter

其中ajax3.asp为
<%
response.Write(request.QueryString("name"))
%>

------解决方案--------------------
你的代码写错了
if(XHR.readystate==4&&XHR.status==200){
应该写成
if(XHR.readyState==4&&XHR.status==200){

js是严格区分大小写的