一、什么是XMLHttpRequest
XMLHttpRequest对象用于在后台与服务器之间交换数据。
XMLHttpRequest使开发者:
在不重新加载页面的情况下更新网页;
在页面已加载后从服务器请求数据;
在页面已加载后从服务器接收数据;
在后台向服务器发送数据
所有现代的浏览器都支持XMLHttpRequest对象。
Ajax,它是一种交互式的网页开发技术,XMLHttpRequest是它的核心的内容,它能够为页面中的javascript脚本提供特定的通信方式,从而使页面的javascript脚本和服务器之间形成动态交互的效果,XMLHTTPRequest的最大的优点是页面内的javascript脚本可以不用刷新页面,而直接和服务器发生交互,从而实现页面无刷新的效果。
二、XMLHttpRequest的属性和方法
三、XMLHttpRequest常见用法
(1)初始化XMLHttpRequest对象
在使用XMLHttpRequest对象之前需要将XMLHttpRequest对象实例化,因为各个浏览器对这个实例化过程的实现不同,所以针对不同的浏览器实例化XMLHttpRequest对象的方式也不尽相同。
针对微软IE浏览器:
var xmlHttp=new ActiveXObject(“Microsoft.XMLHTTP”);
针对其他浏览器:
var xmlHttp=new XMLHttpRequest();
于是,得到实例化的一个公共的方法:
//实例化XMLHttpRequest对象
function createXMLHttpRequest(){
if(window.XMLHttpRequest){
xmlHttp=new XMLHttpRequest();
}else if(winndow.ActiveXObject){
xmlHttp=new ActiveXObject(“Microsoft.XMLHTTP”);
}
}
(2)指定响应处理函数
指定当服务器返回信息时客户端的处理方式。只需将处理的函数名称赋给XMLHttpRequest对象的onreadystatechange属性即可。
xmlHttp.onreadystatechange=callBack;
需要说明的是,这个函数名称不加括号,不带参数;也可以使用JavaScript及时定义函数的方式定义响应函数,比如:
xmlHttp.onreadystatechange=function(){
//Do something
}
(3)发送HTTP请求
指定响应处理函数之后,就可以向服务器发出HTTP请求了。这需要调用XMLHttpRequest对象的open()和send()方法。
xmlHttp.open(“get/Post”,“URL”,true/false);
xmlHttp.send(null);
(4)open()方法
void open(string mrthod,string URL,boolean asynch,string username,string password);
open()方法表示会建立对服务器的调用,这是初始化一个请求的纯脚本方法。
它有2个必要的参数,还有3个可选的参数。method表示向服务器发送信息的方式,可以为GET或Post;URL表示所调用的服务器资源的URL;asynch是一个布尔值,指示这个调用是异步还是同步,默认为true;username和password允许我们指定一个特定的用户名和口令。一般使用时只取前三个参数即可。
(5)send()方法
//XMLHttpRequest对象的send()方法原型
void send(content);
send()方法具体向服务器发送请求。如果请求声明为异步的,这个方法就会立即返回,否则它会等待,直到接收到响应为止。参数content是可选的,可以是DOM对象的实例、一个输入流或一个串。否则传入的内容会作为请求体的一部分发送。
参考