深入研究Ajax(2) - 建立XMLHttpRequest对象

2005-12-15 12:50:47

XMLHttpRequest 是 Ajax 的关键技术.Javascript也是靠 XMLHttpRequest 来获取XML的. 现在我们来看看如何建立 XMLHttpRequest 对象,然后读取XML. Mozilla和IE同样支持 XMLHttpRequest ,不过在使用过程中是不一样的. - Mozilla 浏览器自带了 XMLHttpRequest 接口 new XMLHttpRequest() - 而 IE 需要使用ActiveX对象来建立. new ActiveXObject("Microsoft.XMLHTTP") XMLHttpRequest 的常用属性和方法 属性 onreadystatechange readyState responseText responseXML status statusText 方法 abort() getAllResponseHeaders() getResponseHeader("<headerName>") open("<method>", "URL"[,asyncFlag[, "<username>"[,"<password>"]]]) send(content) setRequestHeader("<name>", "<value>") 下面开始我们的程序,为了方便使用 XML 我把操作XML的方法用一个 function 封装起来 程序代码 [code] function XMLHttpObject(url,Syne){ var XMLHttp=null var o=this this.url=url this.Syne=Syne this.sendData = function() { if (window.XMLHttpRequest) { XMLHttp = new XMLHttpRequest(); } else if (window.ActiveXObject) { XMLHttp = new ActiveXObject("Microsoft.XMLHTTP"); } with(XMLHttp){ open("GET", this.url, this.Syne); onreadystatechange = o.CallBack; send(null); } } this.CallBack=function() { if (XMLHttp.readyState == 4) { if (XMLHttp.status == 200) { //Xml加载成功后的操作 } } } this.getText=function() { if (XMLHttp==null) {return "还没加载 XMLHttpRequest"} if (XMLHttp.readyState==4) {return XMLHttp.responseText} return XMLHttp.readyState } } [/code] - 现在我们根据上面写好的Function建立一个XML对象 var XMLDoc1=new XMLHttpObject("1.xml",true) - 发送数据,这个过程将调用 XMLHttpRequest 来对 1.xml 进行request XMLDoc1.sendData() - 当加载完成后,可以用下面的方法获取 XML 文档的文本内容了 XMLDoc1.getText() 这样 XMLHttpRequest 建立基本上完成了. [url=http://www.pjhome.net/web/ajax/index.htm]查看演示[/url]