在讲解如何接收服务器数据之前,先来看一下 XMLHttpRequest 对象的 readyState 和 status 属性。readyState 和 status 属性readyState 属性保存有 XMLHttpRequest 对象的交互状态,从 0 到 4 变化:
status 属性保存有 XMLHttpRequest 对象与后台交互时服务器返回的一个状态码。例如:
查看完整的 status 状态码:Ajax status 状态对照表 注意:readyState 和 status 的含义不同,readyState 是XMLHttpRequest 对象的交互状态,共有 5 个状态,与服务器无关;status 是服务器返回的一个状态码,表示服务器的响应结果,例如,200 表示服务器响应成功,404 表示请求的文件在服务器上不存在。 AJAX 请求成功,xmlhttp.readyState=4,xmlhttp.statue=200,代码:
事件句柄 onreadystatechangeonreadystatechange 是一个事件句柄,存储函数(或函数名),每当 readyState 属性改变时,就会调用该函数。当发送一个 AJAX 请求后,客户端无法确定请求何时完成,所以需要用事件机制来捕获请求的状态,即 readyState 的值,onreadyStateChange 实现了这一功能。 如下代码所示:
接收响应数据接收来自服务器的响应数据,请使用 XMLHttpRequest 对象的 responseText 或 responseXML 属性。
例如,将服务器返回的数据更新到 id="demo" 的节点:
注意:服务器返回的数据一般作为字符串来解析,很少作为 XML 来解析,这里不再讲述 responseXML 。 到此,我们终于可以实现一个完整的 AJAX 请求了。 下面的代码展示了如何获取客户端 IP 地址:
注意:onreadystatechange 需要在请求发送之前设定,编写代码时,要写在 open() 和 send() 之前。 |
|