}
readyState的取值如下:
* 0 (未初始化)
* 1 (正在装载)
* 2 (装载完毕)
* 3 (交互中)
* 4 (完成)
(Source)
接着,函数会检查HTTP服务器响应的状态值. 完整的状态取值可参见 W3C site. 我们着重看值为200
OK的响应.
if (http_request.status == 200) {
// perfect!
} else {
// there was a problem with the request,
// for example the response may be a 404 (Not Found)
// or 500 (Internal Server Error) response codes
}
在检查完请求的状态值和响应的HTTP状态值后, 您就可以处理从服务器得到的数据了.有两种方式可
以得到这些数据:
* http_request.responseText – 以文本字符串的方式返回服务器的响应
* http_request.responseXML –
以XMLDocument对象方式返回响应.处理XMLDocument对象可以用JavaScript DOM函数
步骤 3 – "万事俱备!" - 简单实例
我们现在将整个过程完整地做一次,发送一个简单的HTTP请求. 我们用JavaScript请求一个HTML文件,
test.html, 文件的文本内容为"I'm a test.".然后我们"alert()"test.html文件的内容.
style="cursor: pointer; text-decoration: underline"
>
Make a request
本例中:
* 用户点击浏览器上的"请求"链接;
* 接着函数makeRequest()将被调用.其参数 – HTML文件test.html在同一目录下;
* 这样就发起了一个请求.onreadystatechange的执行结果会被传送给alertContents();
* alertContents()将检查服务器的响应是否成功地收到,如果是,就会"alert()"test.html文件的内
容.
步骤 4 – "X-文档" --- 处理XML响应
在前面的例子中,当服务器对HTTP请求的响应被收到后,我们会调用请求对象的reponseText属性.该属
性包含了test.html文件的内容.现在我们来试试responseXML属性.
首先,我们新建一个有效的XML文件,后面我们将使用这个文件.该文件(test.xml)源代码如下所示:
I'm a test.
在该脚本中,我们只需修改请求部分:
...
>
...
接着,在alertContents()中,我们将alert()的代码alert(http_request.responseText);换成:
var xmldoc = http_request.responseXML;
var root_node = xmldoc.getElementsByTagName('root').item(0);
alert(root_node.firstChild.data);
这里,我们使用了responseXML提供的XMLDocument对象并用DOM方法获取存于XML文件中的内容.