后台:
 protected void Page_Load(object sender, EventArgs e)
        {
            //这里你可以连至用户表检查是否存在这个用户名,当然如果你用membership中的验证方法会更简洁.
            if (Server.HtmlEncode(UserName) == "123456")
                Response.Write("regok");
            else
             Response.Write("error");
        }
前台:
function ValidateUser()
  {
     //获得用于显示验证是否通过的详细信息
     var obj=document.getElementById("default");
     //获取用户输入的用户名的值
     var str=document.getElementById("txtUserName").value;
     //定义一个bool型变量
     var chk=true;
    if (chk){
       //因为输入的用户名可能含有中文,所以将其解码
        var username=escape(str);
        //用于验证用户名的后台页面
        var usrurl="Validate.aspx?UserName="+username;
        //获取从验证页面中异步传输过来的值
        var sta=GetResponseText(usrurl);
        //如果异步传输失败         
        if(sta==false){
            chk=true;
            obj.className="d_ok";
            obj.innerHTML='该会员未能检测,可以尝试注册。';
        }
        //异步传输成功
        else{
              //假如传过来的值的开始位置是"regok",这个值是在验证页面Response.Write出来的值,如果是regok则表示验证通过,否则的话就是验证失败.
            if(sta.indexOf("regok")!=-1){
            alert("ok");
               //验证通过
                chk=true;
                //用于显示验证是否通过的详细信息加上刚刚所定义正确时的样式
                obj.className="Right";
                obj.innerHTML='该会员名可以注册。';
            }else{
            alert("no");
                //验证未通过
                chk=false;
                //用于显示验证是否通过的详细信息加上刚刚所定义错误时的样式
                obj.className="Error";
                obj.innerHTML='该会员名已经被注册。';
            }
        }
    }else{
        obj.className="Error";
    }
    return chk;
  }
  function GetResponseText(url)
  {
      //定义一个http_request变量
       var http_request;
        if (window.XMLHttpRequest) {
                //对于Mozilla、Netscape、Safari等浏览器,创建XMLHttpRequest对象
                http_request = new XMLHttpRequest();
                if (http_request.overrideMimeType) {
                        //如果服务器响应的header不是text/xml,可以调用其它方法修改该header
                        http_request.overrideMimeType('text/xml');
                }
        } else if (window.ActiveXObject) {
                // 对于Internet Explorer浏览器,创建XMLHttpRequest
                try {
                        http_request = new ActiveXObject("Msxml2.XMLHTTP");
                        alert("1");
                } catch (e) {
                        try {
                          alert("2");
                                http_request = new ActiveXObject("Microsoft.XMLHTTP");
                        } catch (e) {}
                }
        }
        //打开验证页面的地址
       http_request.open('GET', url, false);
       http_request.send(null);
           if (http_request.readyState == 4)
           {
           alert("3");
               // 收到完整的服务器响应
                   if (http_request.status == 200) {
                   alert("4");
                          //HTTP服务器响应的值OK
                             var requestdoc = http_request.ResponseText;
                             
                             alert(requestdoc);
                }
                  else {
              requestdoc = "error";
          }
    }
    return requestdoc;
  }
</script>
也不报错,alert一下,http_request.ResponseText 为underfine 。什么原因

解决方案 »

  1.   

    楼主建议你换用Jquery中的ajax,好用多了,你试试就知道了。
      

  2.   

    楼主断点调式看看,有没有访问到Validate.aspx这个页面,还有需在 Validate.aspx这个页面的pageload方法的下面加个Response.End();让后面html不输出,如果这些还不行的话不知道楼主是什么浏览器调式的,可能你用的浏览器不支持你创建的xmlhttp对象。
    再给LZ来个jquery板的ajax    $.get("Validate.aspx",{“UserName”:username},function(result,status){
               if(status=="success"){
                    alert(result);//弹出返回的值
                }else{
                    alert("ajax请求失败或者超时");
              }
        })够简单吧
      

  3.   

    http://www.cnblogs.com/yeer/archive/2009/07/23/1529460.html
      

  4.   

    JQuery使用Ajax的一个简单应用http://www.google.com.hk/search?sourceid=chrome&ie=UTF-8&q=jQuery%E4%BD%BF%E7%94%A8ajax
      

  5.   

    http_request.status == 200
    亮点,经常不会出现200
      

  6.   

    最后别用JS。兼容性很戳! 如果不是资深的JS使用者,兼容够你闹的了。换成jquery把!