随着Web应用的普及和功能需求的增加,页面异步请求技术也被越来越多地应用。其中,Ajax(Asynchronous JavaScript and XML)就是最常用的异步请求方式之一。Ajax技术的实现主要是通过XMLHttpRequest对象来完成的。
一、XMLHttpRequest对象介绍 XMLHttpRequest对象是Ajax请求的核心对象,它提供了从Web服务器异步获取数据的能力。使用该对象可以在不刷新整个页面的情况下获取特定URL的内容、更新部分网页等。XMLHttpRequest对象可向任何服务器发送HTTP请求,并能处理来自服务器的响应。
二、XMLHttpRequest对象的属性和方法 1.属性:
①onreadystatechange:存储处理readystatechange事件的函数,即当XMLHttpRequest对象的readyState属性发生变化时调用的函数。
②readyState:存储XMLHttpRequest的当前状态,包括以下5个状态:
0 - (未初始化)已经创建了XMLHttpRequest对象,但还没有调用open()方法。
1 - (载入)已经调用open()方法,但尚未调用send()方法,即开始向服务器发送请求。
2 - (载入完成)已经调用send()方法,且响应头和响应状态行已经返回,但响应体尚未返回。
3 - (交互)已经接收到部分响应体,目前没有在本阶段提供可用的接口,因此使用上需要注意。
4 - (完成)已经接收到全部响应数据。
③responseText:存储包含从服务器返回的响应结果的文本字符串。
④responseXML:存储由服务器返回的响应结果的XML DOM对象。
⑤status:存储响应状态码(例如200表示成功,404表示没有找到网页等等)。
⑥statusText:存储响应状态码的描述信息(例如“OK”表示成功,“Not Found”表示没有找到网页等等)。
2.方法:
①open(method,url,async):创建一个XMLHttpRequest对象,该对象可向指定URL发起HTTP请求。参数method表示请求的类型(GET或POST),url表示请求的地址,async表示是否为异步请求,默认值为true。
②send(string):发送HTTP请求。可以将string作为参数发送请求体(通常用于POST请求),也可以将null作为参数发送