一、 简介 <script src="http://it.hexun.com/ad/news/pic.js" type="text/javascript"></script>
我已创建了一个适合于本文的示例工程。这个示例实现了一个简单的请求-它装载一个包含页面内容的XML文件并且分析数据以把它显示在一个HTML页面中。
表1和2提供了一个属性和方法的概述-它们为Windows Internet Explorer 5,Mozilla,Netscape 7,Safari 1.2,和表1属性
属性 | 描述 |
onreadystatechange | 当请求对象变化时该事件处理器激活。 |
readyState | 返回指示对象的当前状态的值。 |
responseText | 来自服务器的响应串的版本。 |
responseXML | 来自服务器的响应的DOM兼容的文档对象。 |
status | 来自服务器的响应的状态码。 |
statusText | 以一个字符串形式返回的状态消息。 |
方法 | 描述 |
Abort() | 取消当前HTTP请求。 |
getAllResponseHeaders() | 检索所有的HTTP头值。 |
getResponseHeader("headerLabel") | 从响应体中检索一个HTTP头部的值。 |
open("method","URL"[,asyncFlag[,"userName"[,"password"]]]) | 初始化一个MSXML2.XMLHTTP请求,并从该请求指定方法,URL和认证信息。 |
send(content) | 发送一个HTTP请求到服务器并接收响应。 |
setRequestHeader("label", "value") | 指定一个HTTP头的名字。 |
首先,你需要创建XML文件-后面我们对之进行请求并作为页面内容进行分析。你正在请求的文件必须与目标工程驻留在相同的服务器上。
<body οnlοad="makeRequest('xml/content.xml');">
<div id="copy"></div>
</body>
现在到了发出请求的时间了。在这个示例中,我使用了null,因为我们使用的是GET;为了使用POST,你需要使用下面这个方法发出一个查询串:
request.onreadystatechange = onResponse;
request.open("GET". url, true);
request.send(null);
值 | 描述 |
0 | 未初始化,对象没有用数据进行初始化。 |
1 | 装载中,对象正在装载它的数据。 |
2 | 装载结束,对象完成了它的数据的装载。 |
3 | 可交互,用户能与对象交互了,尽管它还没有装载结束。 |
4 | 完成,对象已经完全被初始化。 |
W3C中有很长的一串有关HTTP状态代码的定义。我选择了两个状态代码:
当状况代码为200时,这意味着请求成功。下面开始进行响应了。
var response = request.responseXML.documentElement;
现在既然你有了到响应的根结点的参考,那么你可以使用getElementsByTagName()以结点名字来检索childNodes。下面一行用一个头部的nodeName来定位一个childNode:
response.getElementsByTagName('header')[0].firstChild.data;
使用firstChild.data可以允许你存取该元素中的文本: