大致分为如下5步:
1)创建XMLHttpRequest对象 ,注意不同浏览器的创建方法不一样:
对于FireFox,Mozillar,Opera,Safari,IE7,IE8,创建方法如下:
XMLHttpRequest xmlhttp = new XMLHttpRequest();
对于IE6,IE5.5,IE5 ,创建方法为:
var activexName = ["MSXML2.XMLHTTP","Microsoft.XMLHTTP"];
for (var i = 0; i < activexName.length; i++) {
try{
//取出一个控件名进行创建,如果创建成功就终止循环
//如果创建失败,回抛出异常,然后可以继续循环,继续尝试创建
xmlhttp = new ActiveXObject(activexName[i]);
break;
} catch(e){
}
2)注册回调函数
xmlhttp.onreadystatechange = callback;
这里是把回调函数名赋值给onreadystatechange ,不要写成callback(),后者表示是把回调函数的执行结果进行赋值
3)创建连接信息,即设置提交方式,服务器的url,是否采取异步通信。如果是get提交方式,可以讲参数拼接在URL中
xmlhttp.open("GET","ServerURL?name="+ userName,true);
4)提交数据到服务器,开始交互
xmlhttp.send(null);
如果在步骤3中采取的是Get方式,提交的参数已经拼接在了URL里,所以这里发送数据时可以传一个null值
5)接收服务器传回的数据。 在取数据前需要判断交互是否完成
if (xmlhttp.readyState == 4) {
//判断http的交互是否成功
if (xmlhttp.status == 200) {
。。。开始获取服务漆器端返回的数据
readyState 取值如下:
0:请求未初始化(还没有调用 open())。
1:请求已经建立,但是还没有发送(还没有调用 send())。
2:请求已发送,正在处理中(通常现在可以从响应中获取内容头)。
3:请求在处理中;通常响应中已有部分数据可用了,但是服务器还没有完成响应的生成。
4:响应已完成;您可以获取并使用服务器的响应了。
如果采用Jquery的话,我们编写的代码会减少很多。如步骤1中浏览器的判断,这些都用jquery自己完成了