片区:
故乡:
昵称:粉肠
职业:
年龄:26
最后登录:2008-12-02 09:47:17
写点什么好呢?
ajax!
2006-06-01 00:00
if (window.XMLHttpRequest){
xmlObj = new XMLHttpRequest();
}else if (window.ActiveXObject){
xmlObj = new ActiveXObject("Microsoft.XMLHTTP");
}
我们通过这个对象的OPEN方法向服务发送请求,
该函数声明为XMLHttpRequest.open(String method, String URL, boolean asynchronous);
method是请求的方式,可以为GET和POST URL是你要请求的资源 asynchronous是布尔类型,为true表示交互设置为异步
xmlObj.open("GET",URL,true);xmlObj.send("");
调用send()(参数是空或是null)将会发起一次请求,对于GET方式的请求,两次同样的请求将会得到相同的结果,由于为将交互设置为异步方式,因此要为指定一个回调函数:
xmlObj.onreadystatechange = callBackFunction;
剩下的事就交给回调函数处理了。有一点要注意了,用Servlet或JSP来响应异步请求时,要设置reponse的contentType属性指明是XML格式:
response.setContentType("text/xml");一切都准备好了,那我们现在来做一个简单的异步请求,并将请求返回的结果显示出来:
客户端:
function load(resource) {if (window.XMLHttpRequest){
xmlObj = new XMLHttpRequest();
}else if (window.ActiveXObject){
xmlObj = new ActiveXObject("Microsoft.XMLHTTP");
}else {
return;
}
xmlObj.onreadystatechange = handleResponse;
xmlObj.open("GET",resource,true);
xmlObj.send("");
}
function handleResponse() {
if (xmlObj.readyState == 4){//xmlObj loaded
if (xmlObj.status == 200){
var datas = xmlObj.responseXML.getElementsByTagName("data");
var obj = document.getElementById("data");
obj.innerText = datas[0];
}
}
}
onclick="load(´data.jsp´)">发送请求
看这里!
以下是data.jspZjcfan
评论(1)发表评论
XMLHttpRequest 对象方法
方法 描述
abort() 停止当前请求
getAllResponseHeaders() 作为字符串返问完整的headers
getResponseHeader("headerLabel") 作为字符串返问单个的header标签
open("method","URL"[,asyncFlag[,"userName"[, "password"]]]) 设置未决的请求的目标 URL, 方法, 和其他参数
send(content) 发送请求
setRequestHeader("label", "value") 设置header并和请求一起发送
XMLHttpRequest 对象属性
属性 描述
onreadystatechange 状态改变的事件触发器
readyState 对象状态(integer):
0 = 未初始化
1 = 读取中
2 = 已读取
3 = 交互中
4 = 完成
responseText 服务器进程返回数据的文本版本
responseXML 服务器进程返回数据的兼容DOM的XML文档对象
status 服务器返回的状态码, 如:404 = "文件末找到" 、200 ="成功"
statusText 服务器返回的状态文本信息