hgc-ghc
Good Good Study!!! Day Day Up!!!
posts - 40,comments - 3,trackbacks - 0
在js中写入:
function createXhr() {
var httprequest = false;
if (window.XMLHttpRequest) { // if Mozilla, Safari etc
httprequest = new XMLHttpRequest();
if (httprequest.overrideMimeType)
httprequest.overrideMimeType('text/xml')
} else if (window.ActiveXObject) { // if IE
try {
httprequest = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
httprequest = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {
}
}
}
return httprequest;
}
var xhr;//声明全局变量 用来表示XMLHttpRequest对象 
/**
 应用AJAX的步骤
 1、创建XMLHttpRequest对象 
 2、调用open()方法打开一个新的请求
 3、调用send()方法发送请求到服务器端
 4、 指定onreadystatechange属性的值,即readyState 属性值发生改变时调用哪个方法,
 注意onreadystatechange属性的值对应的是一个回调函数,所以只写个函数名就OK了
 5、编写用于处理 readyState 属性值发生改变的方法
 */
//open()方法中需要的url 通过这种方式来解决AJAx的缓存的问题 
function convertUrl(url) {
var timestamp = (new Date()).valueOf();
if (url.indexOf("?") >= 0) {
url = url + "&t=" + timestamp;
} else {
url = url + "?t=" + timestamp;
}
return url;
}
function on_blur() {
//var mydate = new Date().getTime();
xhr = createXhr(); //1.创建XmlHttpRequest对象
var userId = document.getElementById("userId").value;
var _userId = encodeURI(encodeURI(userId));
var myUrl = "CheckIdServlet?id=" + _userId;
//xhr.open("get","CheckIdServlet?id="+_userId+"&now="+mydate,true);
xhr.open("get", convertUrl(myUrl), true); //2.调用open()方法打开一个新的请求
xhr.send(); //3.调用send()方法发送请求到服务器端
xhr.onreadystatechange = myCheck; //4.编写用于处理 readyState 属性值发生改变的方
}
function myCheck() {
if (xhr.readyState == 4 && xhr.status == 200) { //当readyState的属性为值 为4时表示HTTP 响应已经完全接收
var returnData = xhr.responseText; //当前请求的http状态码值200时表示成功
alert(returnData); //这是双重保险 
document.getElementById("userIdMessage").innerHTML = returnData;
}
}
posted on 2012-06-26 14:41 宏才 阅读(171) 评论(0)  编辑  收藏 所属分类: ajax