Ajax异步请求

来源:互联网 发布:Linux ppc64 编辑:程序博客网 时间:2024/05/16 06:43
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");一切都准备好了,那我们现在来做一个简单的异步请求,并将请求返回的结果显示出来:

客户端:

<html><script language="javascript">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 loadedif (xmlObj.status == 200){var datas = xmlObj.responseXML.getElementsByTagName("data");var obj = document.getElementById("data");obj.innerText = datas[0];}}}</script><body><p><a href="#" onclick="load('data.jsp')">发送请求</a></p><p id="data">看这里!</p></body></html>以下是data.jsp

<%response.setContentType("text/xml");%><?xml version='1.0' encoding='gb2312' ?><home><data>Zjcfan</data></home>

原创粉丝点击