Ajax中的XmlHttpRequest对象剖析

一·ajax的编程步骤:

1.创建XMLHttpRequest对象xhr;

2.使用xhr的open函数打开资源;open("GETorPOST","传向的页面"+如果是GET要加参数(不用加/));

3.使用xhr的onreadystatechange属性注册处理应答的回调函数的句柄;(为什么只传句柄?如果传display()的话相当于传入的是函数值,

而传入display()的话是将整个函数传给它,当有变化时交个这个函数来处理传入display()还会出错?)

4.(在使用POST方法使用)使用xhr的setRequestHeader设置请求头。通常设置content-type

请求头,可能的值是:application/x-www-form-urlencoded和text/xml;

5.使用xhr的send方法发送请求;

6.编写回调函数处理应答:在此函数里通过xhr的readyState属性判断通信是否结束(等于4结束);然后再通过xhr的status属性判断webserver是否正确处理应答(等于200正确),如果正确处理应答,应答的文本存放在xhr的responseText属性中,应答是xml再将生成的xml文档放在xhr的responseXML中传XML文档只能用POST方法传

res.getCharactorEncoding();可获得res的字符编码

res.setCharactorEncoding("UTF-8");

用DOMapi解析XML文档的步骤:

1.创建DocumentBuilderFactory:

DocumentBuilderFactorydbf=DocumentBuilderFactory.newInstance();

2.(可选)设置dbf的属性:

设置合法性检测:dbf.setValidating(true);

设置处理名字空间:dbf.setNamespaceAware(true);

3.创建DocumentBuilder:

DocumentBuilderdb=dbf.newDocumentBuilder();

4a.解析XML文档:

Documentdoc=db.parse(xmlResource);

4b.生成XML文档:

Documentdoc=db.newDocument();

二·XMLHTTPRequest的属性和方法介绍

方法属性:

open(stringmethod,stringurl,booleanasynch,stringusername,stringpassword):post还是get,url地址,同步还是异步后面三个参数是可选的

voidsend(content):

stringgetAllResponseHeaders()

voidsetRequestHeader(stringheader,stringvalue):这个方法为HTTP请求中一个给定的首部设置值。它有两个参数,第一个串表示要设置的首部,第二个串表示要在首部中放置的值。需要说明,这个方法必须在调用open()之后才能调用。

stringgetResponseHeader(stringheader):

onreadystatechange:每个状态改变时都会触发这个事件处理器,通常会调用一个JavaScript函数、回调函数

readyState:请求的状态。有5个可取值:0=未初始化,1=正在加载,2=已加载,3=交互中,4=完成

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

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

statusText:HTTP状态码的相应文本(OK或NotFound(未找到)等等)

相关推荐