您的位置:首页 > 理论基础 > 计算机网络

使用xmlhttprequest对象来进行AJAX的异步数据交互

2008-11-02 15:52 876 查看
五步法:
准备:使用dom的方式获取文本框中的值

document.getElementById("userName")是dom获取元素节点的一种方法, 一个元素

点对应HTML页面中的一个标签,如果<input>.value可以获取一个元素的value属性值。
1.创建XMLHttprequest对象

这是XMLHttprequest对象5步中最复杂的一步

需要针对IE和其他浏览器建立这个对象的不同方式写不同的代码
if (window.XMLHttpRequest) {

//针对FireFox,Mozillar, Opera, Safari, IE7 , IE8

xmlhttp = new XMLHttpRequest();

//针对某些特定版本的 mozillar浏览器的BUG进行修正

if (xmlhttp.overrideMimeType ) {

xmlhttp.overrideMimeType("text/XML" ) ;

}

} else if (window.ActiveXObject) {

//针对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;
3设置连接信息,使用open方法与服务器建立连接

第一个参数表示http的请求方式。支持所有http的请求方式。主要使用get和post

第二个参数表示请求的url地址,get方式的参数也在url中

第三个参数表示采用异步还是同步方式交互,true表示异步

GET方式请求的代码:

xmlhttp.open("GET","AJAXServer?name="+userName,true);
4 发送数据,开始和服务器端进行交互

同步方式下,send这句话会在服务器设置回来后才执行完

异步方式,send这句话执行晚会立即完成

GET方式:

xmlhttp.send(null);
5 接收响应数据,针对不同的响应状态进行处理
回调函数

function callback(){

//接收响应数据

//判断对象的状态是交互完成

if(xmlhttp.readyState==4){

//判断http的交互是否成功、

if(xmlhttp.status==200){

//获取服务器端返回的数据

//获取服务器端输出的纯文本数据

var responseText = xmlhttp.responseText;

//将数据显示在页面上

//通过dom方式找到div标签所对应的元素节点

var divNode = document.getElementById("result");

//设置元素节点中的html内容

divNode.innerHTML=responseText;

}else

{

alert("出错了");

}

}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: