Action返回给Ajax,ajax接收值的问题

Action返回给Ajax,ajax接收值的问题

问题描述:

//根据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的值。

Writer writer = reponse.getWriter();
System.out.println("Json Data :" + jsonObject.toString());
writer.write("这方你要返回的值,String类型");

checkValidName返回null就可以了

别忘加上writer.flush();
writer.close();

sorry !是writer.write("");就一个参数

writer.write(String)

response.setContentType("text/html; charset=gb2312");//charset设置编码方式
response.getWriter().write("你写给页面的内容");

是的
你可以该封装一个ajax工具,不用每次都重复那些创建xmlrequest对象的代码

这个无所谓。
我对ajax也不是很熟,只是简单额应用,一般都是字段检测,或者局部刷新一个列表