javascript与dom编程(五)ajax

一:创建XMLHttpRequest对象

    在使用XMLHttpRequest对象发送请求和处理响应之前,必须先用JavaScript创建一个XMLHttpRequest对象,在IE56)中是把XMLHttpRequest实现为一个ActiveX对象,如:var requester = new ActiveXObject("Micrsoft.xmlHTTP");

其它的浏览器包括IE7是把实现为一个JavaScript对象。如:

var requester = new XMLHttpRequest();

    我们可以通过try-catch,在不同的浏览器中,正确的创建XMLHttpRequest对象。

try

{

    var requester = new XMLHttpRequest();

}

catch(error)

{

    try

    {

       var requester = new ActiveXObject("Microsoft.XMLHTTP");

    }

    catch(error)

    {

       var requester = null;

    }

}

二:与服务器通信

创建好XMLHttpRequest后,我们需要调用opensend两个方法,用来从服务器取得数据。

open用来初始化与服务器的连接,它带有两个必选的参数。第一个参数为请求的方式,(getpostput),第二个为获得数据的url地址。例如:

requester.open("GET", "/feed.xml", true);第三个参数指定请求是异步还是同步,默认为异步。

send方法激活此连接,向服务器发送请求。当使用POST请求时,send允许发送一个已经编码过的参数。

requester.setRequestHeader("Content-Type",

"application/x-www-form-urlencoded");//Opera浏览器下

requester.open("POST", "/query.php", true);

requester.send("name=Clark&email=superman@justiceleague.xmp");

使用GET时,参数必须随着url传送。例如:

requester.open("GET",

"query.php?name=Clark&email=superman@justiceleague.xmp", true);

requester.send(null);

IE下,send不需要任何参数,但是在firefox中则会出现错误。所以我们必须给send一个null的参数。

调用send后,XMLHttpRequest将会与服务器通信,返回你所请求的数据。为了确认服务器已经响应请求,我们可以监视XMLHttpRequestreadyState属性,有5个可取值,0=初始化,1=正在加载,2=已加载,3=交互中,4=完成。

请求完成后,我们还必须确认XMLHttpRequest是否正确得到数据,我们可以查看statusHTTP状态码,200对应OK404对应Not Found

三:处理数据

1responseXML:服务器的响应,表示为XML,可以解析为一个DOM对象。

2responseText:服务器的响应,表示为一个串。

posted @ 2009-06-01 21:37  sunfishlu  阅读(233)  评论(0编辑  收藏  举报