日期:2014-05-16  浏览次数:20730 次

刚学Ajax找了好久就是不知道为什么提交不了,大家帮忙看看
function cleck(ouser){
var uname=ouser.value;
if(!uname){
alert("不能为空");
ouser.focus();
return;
}
var url="Reg";
xmlHttpRequest = createXmlHttpRequest();
xmlHttpRequest.onreadystatechange=fanhui;
xmlHttpRequest.open("POST",url,true);
xmlHttpRequest.setRequestHeader("Content-Type",
"application/x-www-form-urlencoded");
xmlHttpRequest.send("uname="+uname);

}
function createXmlHttpRequest(){
if(window.XMLHttpRequest){
return new XMLHttpRequest();
}else{
return new ActiveXObject("Microsoft.XMLHTTP");
}
}
function fanhui(){
alert("调用");
if(!xmlHttpRequest.readyState==4 && xmlHttpRequest.status==200){
alert("调用2");
var result=xmlHttpRequest.responseText;
result=result.replace(/(^\s*)|(\s*$)/g,"");
if(result=="true"){
alert("已存在");
}else{
alert("可以使用");
}
}
}

<table>
<form name="Reg" method="get" action="Reg">
<tr>
<td>用户名:</td>
<td><input type="text" name="uname" onblur="cleck(this)"/></td>
</tr>
<tr>
<td>密码:</td>
<td><input type="password" name="psd"/></td>
</tr>
<tr>
<td>提交:</td>
<td><input type="submit" name="psds" value="提交"/></td>
</tr>
</form>
</table>

Reg:
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
String uname=request.getParameter("uname");
System.out.println(uname);
boolean uExists=false;
if("hehe".equals(uname)){
uExists=true;
out.print(uExists);
}else{
out.print(uExists);
}
out.flush();

离开焦点后,会一直弹出"调用" Reg 的servlet输出的uname在控制台可以看到,但是为什么不弹出已存在或可以使用,而是一直弹出“调用”呢,这个问题百度关键字也不知道怎么搜,自己又找不出来问什么,和视屏上内容敲的也没什么区别,但是视频上能出来 我就一直弹出“调用”

------解决方案--------------------
if(!xmlHttpRequest.readyState==4 && xmlHttpRequest.status==200){