ajax得到的内容,没法通过return返回的
 xmlhttp.onreadystatechange=function(){}只能在这里边进行判断除非你让你的js延迟到执行完ajax代码,也就是
if(4==xmlhttp.readyState){
       if(200==xmlhttp.status){}
}
这两个状态完成之后再返回值js代码,即使是在window.onload()时间里执行,也是在页面代码全部加载到客户端之后执行的,
而ajax执行的时候需要重新访问服务器,这本身需要一定的时间,你页面的代码加载完毕之后,ajax代码并不一定先执行完了,这时候你返回它的结果,肯定会报undifend 

解决方案 »

  1.   


    function test(){
    //ajax访问服务器页面
    //ajax访问服务器并返回信息需要一定的时间
    //但是这里的代码并不会等它返回完毕之后再继续往下运行
    return "";//所以可能ajax还没获取到任何服务器返回的信息,这句代码就被执行了
    }
      

  2.   


    if(200==xmlhttp.status)
           {
             if (xmlhttp.responseText=="yes")
             { 
               msg="此用户名已经存在";
            
             }
             else
             {
              msg="输入正确";
        
             }        
           }
           else
           {
             msg="网络链接失败";
        
           }
        showMsg(msg);
         }//-----------------------------
    showMsg(msg)
    {
        alert(msg);
        //你想用这个信息干吗就干吗
    }
    你需要的是一个信息,但是靠这个返回是不行的,不过你可以在这里通过调用 一个函数来实现
      

  3.   

    这样不行, ajax默认是异步,除非改成同步
    xmlhttp.open("get","checkuser.asp?username="+escape(username)+ "&t=" +  new Date().getTime(), false);