function ajax(options) {
var req = false;
if (window.XMLHttpRequest) {
req = new window.XMLHttpRequest();
} else if (window.ActiveXObject) {
req = new window.ActiveXObject('Microsoft.XMLHTTP');
}
if (!req)
return false;
// alert("req.readyState1:"+req.readyState);
//0:描述一种"未初始"状态;此时,已经创建一个XMLHttpRequest对象,但是还没有初始化。
req.open(options.method, options.url, true);
// alert("req.readyState2:"+req.readyState);
req.onreadystatechange = function() {//初始化
// alert("req.readyState:"+req.readyState);
switch (req.readyState) {
case 1: //1:描述一种"发送"状态;此时,代码已经调用了XMLHttpRequest open()
//方法并且XMLHttpRequest已经准备好把一个请求发送到服务器。
// alert('Loading');
break;
case 2://2:描述一种"发送"状态;此时,已经通过send()方法把一个请求发送到服务器端,但是还没收到一个响应。
// alert('Loaded');
break;
case 3://描述一种"正在接收"状态;此时,已经接受到HTTP相应头部信息,但是消息体部分还没有完全接受结束。
// alert('Interactive');
break;
case 4://4:描述一种"以加载"状态;此时,相应已经被玩全接收。
// alert('ready');
if (req.status == 200) {
options.listener.call(req);
} else {//页面不正常
window.alert("您所请求的页面有异常。");
}
}
//测试Ajax原来在请求发送之后一直在循环执行函数processResponse()
// alert("[循环执行函数processResponse()]req.readyState:"+req.readyState);
};
switch (options.method) {
case 'GET':
req.send(null);
break;
case 'POST':
// alert('send start......');
req.setRequestHeader("Content-Type",
"application/x-www-form-urlencoded");//POST方式需要自己设置http的请求
// alert('send before');
req.send(options.param);
// alert('send after');
break;
case 'HEAD':
break;
default:
}
return req;
}
function callback() {
// alert('callback');
// alert(this.responseText);
var res = this.responseXML.getElementsByTagName("res")[0].firstChild.data;
if (res == '0') {//0:数据库不存在此用户。
document.getElementById("error").innerHTML = "恭喜,名字可用";
} else {//1
document.getElementById("error").innerHTML = "名字已经存在";
}
}
function check_name_existed(servlet,value) {
var options = {
url : servlet,
listener : callback,
method : 'POST',
param : 'name=' + value
+ '&b=' + '3'
}
var req = ajax(options);
}
Ajax兴起于2006年,现在都五六年了,技术应经很完善了听说,今天初识
相见恨晚。。。只怪自己晚生几年。。。注:此处为佳话 - - !!!