<html>
<head>
<script type="text/javascript">
function init(){
var xhr = null;
if(window.XMLHttpRequest){
xhr = new XMLHttpRequest();
}
return xhr;
}
function load(username){
var xhr = init();
xhr.open("get","validate?username="+username);
xhr.onreadystatechange = function(){
if(xhr.readyState==4){
if(xhr.status==200){
var text = xhr.responseText;
document.getElementById("username_msg").innerHTML = text;
}
}
};
xhr.send(null);
}
</script>
</head>
<body>
<input name="username" onblur="load(this.value)"/><span id="username_msg"></span><br/>
<input name="password"/><span id="password_msg"></span><br/>
</body>
</html>
serlvet中只返回true或false
为什么我的这个ajax就是不能正常显示,整了一天了,无比郁闷,求高手指出其中的错误!不胜感激

解决方案 »

  1.   

    这种写法还真是比较纠结。推荐你还是用jquery的ajax吧!!你简单,也好用。
      

  2.   

    你的servlet中要使用response.getWriter,进行输出信息,比如,writer.write("true");这种但是你中间的js处理,是否正确,不得而知,你还是使用一个ajax框架来做吧,比如prototype,jquery等
      

  3.   

    你的servlet返回值 是否正确如果返回值没问题 就是你的回调方法有问题
      

  4.   

    關鍵提示信息也得給出啊 比如load(this.value) 值是什麽呢
      

  5.   

    请自己排查
    1)首先自己在URL输入:validate?username=1111,看有没东西返回。没有,就是SERVLET写错了
    2)如果有东西返回(暂且不论你返回的是什么,都会显示在“username_msg”元素里面)。如果没有,就检查你的JS脚本咯,多输出几个ALERT检查下~(不过貌似你JS没什么错。我不太熟悉,貌似而已)