一个Ajax问题 初级菜鸟求帮助
<script type="text/javascript">
function checkUserExists(){
var f=document.form;
var username=f.username.value;
if(username==""){
alert("用户名不能为空");
return false;
}else{
doAjax(username);
}
}
function createXmlHttpRequest(){
if(window.ActiveXObject){
return new ActiveXObject("Microsoft.XMLHTTP");
}else if(window.XMLHttpRequest){
return new XMLHttpRequset();
}
}
var xmlHttp;
function doAjax(username){
var url="CheckUserServlet?username="+username;
xmlHttp=createXmlHttpRequest();
xmlHttp.onreadystatechange=processRequest;
xmlHttp.open("GET",url,true);
xmlHttp.send(null);
}
String.prototype.trim = function() {
var m = this.match(/^\s*(\S+(\s+\S+)*)\s*$/);
return (m == null) ? "" : m[1];
}
function processRequest(){
if(xmlHttp.readyState==4){
if(xmlHttp.status==200){
if(xmlHttp.responseTest.trim()=="false"){
document.getElementById("mess").innerHTML="用户名可以使用";
}else{
document.getElementById("mess").innerHTML="用户名已被使用";
}
}else{
alert("请求处理返回的数据有错误!");
alert(xmlHttp.status);
}
}
}
------解决方案--------------------初学Ajax有问题很正常,你不要一下子就忽略掉太多的提示信息,调试的时候把浏览器的调试工具开起来,否则就算出了很多错误,你都看不见。
------解决方案--------------------楼主最好一步一步调试先看看
1,看能不能进入到else{
doAjax(username);
}
这里面可以alert一下
2,可以再回调函数processRequest()中alert一下看看ajax现在的状态
如果没有4那么就表示根本没有交互完成,你可以看看servlet那边的情况
3,你的url后面加上时间戳或者随机数来防止缓存带来的影响,&time=" + new Date().getTime()
------解决方案--------------------倒数10行:
if(xmlHttp.responseTest.trim()=="false"){
document.getElementById("mess").innerHTML="用户名可以使用";
xmlHttp.responseText 写错了