//根据IE的类型创建一个XmlHttpRequest对象 
function createXmlHttpRequest(){   
     if(window.ActiveXObject)   
     {   
         return new ActiveXObject("Microsoft.XMLHTTP");   
     }   
     else if(window.XMLHttpRequest)   
     {   
         return new XMLHttpRequest;   
     }   
}   
var xmlHttpRequest;    
//根据用户名称发送请求到服务器       
function requestServer(){    
    var userName=document.getElementById("uname").value;
 if ( userName== ""){
     alert("请输入用户!");
  document.getElementById("uname").focus();
  return;
 } 
    var userPassword=document.getElementById("upassword").value;
    if ( userPassword== ""){
    alert("请输入密码!");
    document.getElementById("upassword").focus();
    return;
 }
 var securityCode=document.getElementById("validateNum").value;
    if ( securityCode== ""){
    alert("请输入验证码!");
    document.getElementById("validateNum").focus();
    return;
 }
    var cookieData=document.login.cookieData.checked;
 delCookie("cookieName");
    delCookie("cookiePassword");
 delCookie("cookieData");
 if(cookieData==true){  
    saveCookie("cookieName",userName);  
    saveCookie("cookiePassword",userPassword);     
    saveCookie("cookieData",cookieData);   
 }     
 var account=document.getElementById("uname").value;
 if(account!=null) {
 var url="userAction.do?action=checkValidName&account="+account;   
    //创建XMLHttpRequest组件   
    xmlHttpRequest=createXmlHttpRequest();   
    //设置回调函数,让其等待服务器的响应   
    xmlHttpRequest.onreadystatechange=doSubmit;   
    //初始化xmlHttpRequest组件,传入URL   
    xmlHttpRequest.open("GET",url,true);   
    //发送请求   
    xmlHttpRequest.send(null); 
 }     
}   
//登录,获得服务器返回的信息并做出相应提示   
function doSubmit(){ 
 if(xmlHttpRequest.readyState==4 && xmlHttpRequest.status==200){  
      var text=xmlHttpRequest.responseText; 
      alert(text);
     if(text=="1"){   
          alert("此用户名不存在!"); 
          document.getElementById("uname").focus();
    return;  
     }else if(text=="2"){   
          alert("验证码错误");
          document.getElementById("validateNum").focus();
      return;   
      }else if(text=="0"){      
          submitForm(login);
     }   
  }
} Action调用下面这个JAVA类Java类代码  * 判断用户名和验证码是否正确
  */
 public String checkValidName(){
  System.out.println("我进来checkValidName了");
  String account = ServletActionContext.getRequest().getParameter("account");
  System.out.println(account);
  //判断用户名是否存在
  int a = this.privilegeService.ValidName(account);
  if(a==1) {
   this.setMessage("用户名不存在!");
   return "1";
  }else{
   //判断验证码是否正确
   String validateNum = this.getValidateNum();
   String result = ServletActionContext.getRequest().getSession().getAttribute("ValidateNum").toString();
   if(validateNum == null ||result == null || validateNum.trim().equals("")||!result.equalsIgnoreCase(validateNum)){
    this.setMessage("验证码输入错误登录失败!");
    return "2";
   }
  }  
  return "0";
 }
      var text=xmlHttpRequest.responseText; 
      alert(text);为什么text打印出来是页面信息啊
为什么我得到的text不是我Action返回的值?我要怎么才能得到Action return的值。

解决方案 »

  1.   

    不是直接Return值给你的AJAX,用流写给它.
    PrintWriter out = null;
                request.setCharacterEncoding("UTF-8");
                response.setContentType("text/html;charset=UTF-8");
                out = response.getWriter();
                out.write(“这里写你要返回给ajax的值”);
                out.flush();
                out.close();
      

  2.   

    xmlHttpRequest.responseText//这句是接收服务器端的输出流输出流楼上的兄弟已经给了代码了,注意编码就可以了
      

  3.   

    怎么还用最古老的ajax 都用jQuery啊,
      

  4.   

    使用response直接输出流就可以了!
      

  5.   

    return new XMLHttpRequest;   
    这个地方错了吧。应该是:
    return new XMLHttpRequest();   
    少了括号了。