以下ajax的代码, 请问我的ajax()为什么不放进aaa(url)里会出现xmlHttpReq.responseText;里的xmlHttpReq未定义,放进firefox运行会出现(xmlHttp is not defined),怎么回事,我记得之前写js,我不放进去也能执行的。
---------------------
<html>
<script language="JavaScript" type="text/javascript" >// Creates an XMLHttpRequest instance
function createXmlHttpRequestObject()
{
var xmlHttp;
// Try to instantiate the native XMLHttpRequest object
try
{
xmlHttp = new XMLHttpRequest();
}
catch(e)
{
try
{
xmlHttp = new ActiveXObject("Microsoft.XMLHttp");
}
catch(e) { }
}
if (!xmlHttp)
alert("Error creating the XMLHttpRequest object.");
else
return xmlHttp;
}//实例化
function aaa(url){
var xmlHttpReq;xmlHttpReq= createXmlHttpRequestObject();xmlHttpReq.open("GET","exec.php?id="+url, true);xmlHttpReq.send();xmlHttpReq.onreadystatechange=ajax;
}
function ajax(){
document.getElementById('falcon').innerHTML=xmlHttpReq.responseText;
}</script><a href="#" onclick="aaa('b')">bbb</a> <br>
<a href=javascript:aaa('a')>aaaa</a><div id='falcon'></div>
</html>

解决方案 »

  1.   

    if(xmlHttpReq.status==200){
        document.getElementById('falcon').innerHTML=xmlHttpReq.responseText;}
      

  2.   

    xmlHttpReq.readyState:
    0 - (未初始化)还没有调用send()方法
    1 - (载入)已调用send()方法,正在发送请求
    2 - (载入完成)send()方法执行完成,已经接收到全部响应内容
    3 - (交互)正在解析响应内容
    4 - (完成)响应内容解析完成,可以在客户端调用了
    if(xmlHttpReq.readyState==4){
    if(xmlHttpReq.status==200){
      document.getElementById('falcon').innerHTML=xmlHttpReq.responseText;}
    }
      

  3.   

    很简单,因为你在 aaa 中声明了局部变量 
    var xmlHttpReq;当然不能在外部访问啦
      

  4.   

    版主正解
    你把 function createXmlHttpRequestObject()
    {
    var xmlHttp;中的var xmlHttp; 移到函数的外面