问题描述
//根据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 int 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的值。 问题补充:andy_javahome 写道
解决方案
Writer writer = reponse.getWriter();System.out.println("Json Data :" + jsonObject.toString());writer.write("这方你要返回的值,String类型");checkValidName返回null就可以了
解决方案二:
这个无所谓。我对ajax也不是很熟,只是简单额应用,一般都是字段检测,或者局部刷新一个列表
解决方案三:
是的你可以该封装一个ajax工具,不用每次都重复那些创建xmlrequest对象的代码
解决方案四:
response.setContentType("text/html; charset=gb2312");//charset设置编码方式response.getWriter().write("你写给页面的内容");
解决方案五:
writer.write(String)
解决方案六:
sorry !是writer.write("");就一个参数
解决方案七:
别忘加上writer.flush();writer.close();