第 11 章 XML资料的传递–XmlHttpRequest物件
XMLHttpRequest 对象详解

XMLHttpRequest 对象详解一、XMLHttpRequest 对象概述XMLHttpRequest是整个Ajax技术中的核心,缺少了它Ajax技术就无法成为一个有机的整体,将土崩瓦解。
Ajax赖以生存的核心就是异步发送请求。
1999年上半年,Microsoft 在IE 5.0 中首次使用了这种新技术,使用这种新技术,浏览者不必使用Web页跳转或表单提交来发送请求,可以直接从界面中发送请求到服务器,也可从服务器读取数据。
以前这种直接与服务器通信的实现方式仅有iframe,这个功能相当重要,可减少无状态连接的痛苦,还可减少下载冗余的html代码,从而提高响应速度。
于是Mircosoft 就发布了XMLHTTP 的ActiveX 对象,让开发者也能异步与服务器进行交互。
二、XMLHttpRequest的方法和属性abort() 停止发送当前请求。
getAllResponseHeaders(): 获取服务器返回的全部响应头。
getResponseHeader(“headerLabel”): 根据响应头的名字,获取对应的响应头。
open (“method” , “URL”,[asyncFlag],[userName],[password]);建议与服务器的URL连接,并设置请求的方法,以及是否使用异步请求。
如果远程服务需要用户名密码,则提供对应的用户名和密码。
send(content):发送请求,其中content 是请求的参数。
setRequestHeader(“label”,”value”):在发送请求之前,先设置请求头。
示例://定义了XMLHttpRequest对象var xmlrequest;//完成XMLHttpRequest对象的初始化function createXMLHttpRequest(){if(window.XMLHttpRequest){//DOM 2浏览器xmlrequest = new XMLHttpRequest();}else if (window.ActiveXObject){// IE浏览器try{xmlrequest = new ActiveXObject("Msxml2.XMLHTTP");}catch (e){try{xmlrequest = new ActiveXObject("Microsoft.XMLHTTP");}catch (e){}}}}//补充说明:Xmlrequest创建时判断浏览器支持javascript的类型的原因是,各种浏览器对JavaScript的支持不一样..所以XmlHttpRequest对象的产生方式也不一样.比如IE.他支持的是ActiveX的方式.["MSXML2.XMLHttp.5.0","MSXML2.XMLHttp.4.0","MSXML2.XMLHttp.3.0","MSXML2.XM LHttp","Microsoft.XMLHttp"];这些是他ActiveX的版本.而有些浏览器.象FireFox,浏览器本身有对XmlHttpRequest的支持.浏览器有内置对象.所以用"xmlHttp = new XMLHttpRequest(); "就可以了if(window.XMLHttpRequest)是判断浏览器是否内置XmlHttpRequest对象//补充说明结束//事件处理函数,当下拉列表选择改变时,触发该事件function change(id){//初始化XMLHttpRequest对象createXMLHttpRequest();//设置请求响应的URLvar uri = "second.jsp?id=" + id;//打开与服务器响应地址的连接xmlrequest.open("POST", uri, true);//设置请求头xmlrequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");//设置处理响应的回调函数xmlrequest.onreadystatechange = processResponse;//发送请求xmlrequest.send(null);}//定义处理响应的回调函数function processResponse(){//响应完成且响应正常if (xmlrequest.readyState == 4){if (xmlrequest.status == 200){// 信息已经成功返回,开始处理信息var headers = xmlrequest.getAllResponseHeaders();//通过警告框输出请求头alert("请求头的类型:" + typeof headers + "\n"+ headers);//在页面输出所有请求头document.getElementById("output").innerHTML = headers;}else{//页面不正常window.alert("您所请求的页面有异常。
XMLHttpRequest

/xmlhttp/XMLHttpRequest.htmlXMLHttpRequest说明:Web圈提供的解释:XMLHTTPRequest是由一组方法和属性组成的对像.是ajax技术的核心.所有的异步交互和所谓的局部刷新都建立在XMLHTTPRequest基础之上.但经过发展几乎所有的现代浏览器都支持XMLHTTPRequest对像,不过在不同的浏览器中创建该对像的方法略有不同.利用 XMLHTTPRequest神奇之处就是无需刷新网页便可更改网页中的内容.如果你想要在你的网页中实现这种效果,就必须利用JavaScript或Jscript也可以使用VBScript来创建该对像,然后调用该对像的各个属性和方法来实现无刷新效果.我来简单说下XMLHTTPRequest对像的工作原理:首先我们利用JavaScript来创建XMLHTTPRequest对像.当对像成功创建以后.调用open方法来指定要请求的服务端网页,以及请求方式.然后再通过send方法将请求发送出去.在这个过程中如果不出现错误,那和我们就可以接收服务器端返回的数据了,返回的数据通常可以用两种方法来处理.一是将返回的数据作为字符串处理,二是将返回的数据作为XML格式来处理.字符串处理使用responseText方法,XML 处理使用responseXML方法.数据接收完毕,我们可以使用JavaScript和Dom 将数据处理好显示在网页当中.ok 了,XMLHTTPRequest对像的工作流程大致是这样,其实在请求和接收数据这间会有很多事发生.我希望各位读者仔细的阅读一下 XMLHTTPRequest对像的各个属性和方法,这些属性和方法会告诉你.如果在请求的过程中发生了错误,我们该如何控制?如果请求成功,数据却没有传回,我们又该怎么做?我在这就不一一介绍了,我会在下面给出一个具体的实例,相信会有收获!*如果您觉得解释有误或不够到位,您可以点击按扭进行更正或补充语法:xmlHttp=new activeXObject("Microsoft.XMLHTTP"); 注意这个语法只支持IE返回值:xmlHttp:返回对XMLHTTPRequest对像的引用.参数new:创建一个新对像.activeXObject:创建对像,将新创建的对像赋值给变量.Microsoft.XMLHTTP:在IE下的XMLHTTPRequest对像.注意该参数只针对IE浏览器有效,至于FireFox或其他浏览器的语法.我会在下面实例中写出.XMLHttpRequest属性readyState:onreadystatechange:status:statusText:responseXML:responseText:∙responseStream:∙responseBody:XMLHttpRequest方法open:open说明:Web圈提供的解释:XMLHTTPRequest的open方法用来创建一个请求.并指定请求方式和被请求的网页.以及设定是同步或是异步请求..但此时并未发送请求.其功能与传统表单的method action类似.点击这里XMLHTTPRequest查看实例*如果您觉得解释有误或不够到位,您可以点击按扭进行更正或补充语法:xmlhttp.open(method,url,async,user,pass);参数method:指定请求方式.有以下几种post,get,put及propeindurl:指定要请求的服务端网页.可以是绝对路径也可以是相对路径async:布尔值.指定请求是否为异步.两种选择true或falseuser:用户名.当服务器要求输入用户名时指定.一般不用pass:密码.当服务器要求输入密码时指定.很少用open实例与open相关内容:∙XMLHttpRequestsend:send说明:Web圈提供的解释:XMLHTTPRequest对像的send方法可以用来提交一个请求.前题是你必须正确的设置好了open方法.其功能和传统的表单提交基本一样.提示:在请求当中.如果你不需要传递数据.在IE里xmlhttp.send()这种写法或许没问题.但在FireFox里会报错.xmlhttp.send(null)没有数据提交时用null来代替.这样就没有问题了点击这里XMLHTTPRequest观看实例*如果您觉得解释有误或不够到位,您可以点击按扭进行更正或补充语法:xmlhttp.send(param);参数xmlhttp:变量类型,对XMLHTTPRequest对象的引用.param:你想要发送的数据.可以是变量类型.也可以直接用字符串.send实例与send相关内容:∙XMLHttpRequestgetAllResponseHeaders:getAllResponseHeaders说明:Web圈提供的解释:getAllResponseHeaders可以获取响请求的http头信息.所谓的头信息其实就是服务端的基本配置信息.其中包括:服务端使用的IIS版本,服务端网站使用的是什么程序,服务端返回的内容类型.服务端可以接受的数据请求类型,请求的网页最后修改时间.包括响应时间,以及响应内容的长度.值得注意的是.必须当调用send方法以后才能使用getAllResponseHeaders方法.具体请参看下面实例*如果您觉得解释有误或不够到位,您可以点击按扭进行更正或补充语法:str=xmlhttp.getAllResponseHeaders();返回值:str:返回对http头请求的详细信息.文本形式.参数xmlhttp:变量,对象类型.对XMLHTTPRequest对像的引用getAllResponseHeaders实例<html><title>XMLHTTPRequest对像的getAllResponseHeaders方法实例演示</title></head><body><script language="javascript">var _xmlhttp; //xmlhttpRequest对像的全局变量//在IE中创建xmlhttpRequest,适用于IE5.0以上所有版本var msXmlhttp = new Array("Msxml2.XMLHTTP.5.0","Msxml2.XMLHTTP.4.0","Msxml2.XMLHTTP.3.0","Msxml2.XMLHTTP","Microsoft.XMLHTTP");for(var i=0; i<msXmlhttp.length; i++){try{_xmlhttp=new ActiveXObject(msXmlhttp[i]);}catch(e){_xmlhttp=null;}} //循环创建基于IE浏览器的xmlhttp.结束//如果非IE浏览器,则创建基于FireFox等浏览器的xmlhttpRequestif(!_xmlhttp && typeof XMLHttpRequest != "undefined"){_xmlhttp=new XMLHttpRequest();}_xmlhttp.open("get","back.xml",true);_xmlhttp.send();alert(_xmlhttp.getAllResponseHeaders());</script><h2>该实例返回服务端的各种信息,响应的文本类型,内容长度,最后修改时间等等...</h2></body></html>abort:abort说明:Web圈提供的解释:abort方法可以用来取消当前的请求.也可以理解成释放XMLHTTPRequest对像.使对像回到未初始化状态.你可以在特定的情况下使用该方法.例如在返回数据中发现异常时调用该方法来取消当前的请求.我在下面的例子中.当readyState状态为1时取消请求.*如果您觉得解释有误或不够到位,您可以点击按扭进行更正或补充xmlhttp.abort();参数xmlhttp:变量,对像类型.XMLHTTPRequest对像的引用abort实例<html><head><title>XMLHTTPRequest对像的abort方法实例</title></head><body>我们准备一个空的div.把返回的数据填充进去!<div id="str" style="border:1px solid;height:100px;"></div><script language="javascript">var _xmlhttp; //xmlhttpRequest对像的全局变量//在IE中创建xmlhttpRequest,适用于IE5.0以上所有版本var msXmlhttp = new Array("Msxml2.XMLHTTP.5.0","Msxml2.XMLHTTP.4.0","Msxml2.XMLHTTP.3.0","Msxml2.XMLHTTP","Microsoft.XMLHTTP");for(var i=0; i<msXmlhttp.length; i++){try{_xmlhttp=new ActiveXObject(msXmlhttp[i]);}catch(e){_xmlhttp=null;}} //循环创建基于IE浏览器的xmlhttp.结束//如果非IE浏览器,则创建基于FireFox等浏览器的xmlhttpRequestif(!_xmlhttp && typeof XMLHttpRequest != "undefined"){_xmlhttp=new XMLHttpRequest();}/*上面的代码成功创建了xmlhttpRequest对像.适用于所有现代浏览器*/ var url = "back.xml"_xmlhttp.open("get",url,true);//请求方式为get_xmlhttp.onreadystatechange = function(){if(_xmlhttp.readyState==1){alert("open方法已被调用");}if(_xmlhttp.readyState==2){_xmlhttp.abort();alert("XMLHTTPRequest请求被取消!");}}_xmlhttp.send(null);</script>当open方法被调用后,我们取消请求.上面的div不会有数据出现.</body></html>与abort相关内容:XMLHttpRequestsetRequestHeader:setRequestHeader说明:Web圈提供的解释:setRequestHeader方法可以用来设置XMLHTTPRequest对像请求的http头.比如说你要提交的数据类型,要提交的数据内容长度.一般情况下只有指定了open方法的请求状态为post的时候.才使用setResponseHeader方法.注意:当open方法的请求状态设置为Post类型时,你必须使用setResponseHeader设置http请求头.这只是我的理解.可能理解的还不够到位.您可以补充自己的意见.我给一段简单的示意代码出来.我在下面实例中给一段简单示意代码.仅供参考:*如果您觉得解释有误或不够到位,您可以点击按扭进行更正或补充语法:xmlhttp.setRequestHeader(param1,param2);参数参数1和参数2是相对应设置的.大家看下面介绍.param1:一般情况下可以设置三个类型.1:Content-Type-(内容类型)2:Content-Length(内容长度)3:Connection(连接关闭选项)param2:也是三种选项.分别对应param1的各个类型:Content-Type一般设置为:application/x-www-form-urlencodedContent-Length设置为:你想要提交的数据长度.Connection设置为Close.意思是说关闭连接setRequestHeader实例/*设置提交的数据类型,这里的设置可理解为:客户端提交给服务器文本内容的编码方式是URL编码,即除了标准字符外,每字节以双字节16进制前加个“%”表示.当然还有其他编码方式,如:CONTENT-TYPE:multipart/form-data*/setRequestHeader("Content-type", "application/x-www-form-urlencoded");/*设置要提交数据内容的长度.paramsSend.length是你要提交的数据的长度*/setRequestHeader("Content-length", paramsSend.length);/*关闭连接*/setRequestHeader("Connection", "close");与setRequestHeader相关内容:∙XMLHttpRequestonreadystatechange说明:Web圈提供的解释:onreadystatechange是XMLHTTPRequest对像的一个属性.该属性类似一个侦测器.会随着readyState的状态而被触发,只要readystate每改变一次状态.onreadystatechange属性就会被触发一次.因为onreadystatechange属性提供事件机制.你可以为其指定一个函数.一次完整的请求readyState会发生三到五种状态.浏览器之间会有点差异.我就不重复写例子了.大家可以到XMLHTTPRequest查看完整实例提示:你可以在例子中的_xmlhttp.onreadystatechange指定函数里第一行加上alert("ok")来测试onreadystatechang被触发了几次.*如果您觉得解释有误或不够到位,您可以点击按扭进行更正或补充语法:xmlhttp.onreadystatechange=function(){你的代码}参数xmlhttp:变量类型.对XMLHTTPRequest对像的引用=号后面的是一个自定义函数.可以自己编写.通常用来处理服务端服务回的数据.onreadystatechange实例与onreadystatechange相关内容:∙XMLHttpRequestXMLHttpRequest实例<html><head><title>简单的ajax效果</title></head><body>我们准备一个空的div.把返回的数据填充进去!<div id="str" style="border:1px solid;"></div><script language="javascript">var _xmlhttp; //xmlhttpRequest对像的全局变量//在IE中创建xmlhttpRequest,适用于IE5.0以上所有版本var msXmlhttp = new Array("Msxml2.XMLHTTP.5.0","Msxml2.XMLHTTP.4.0";,"Msxml2.XMLHTTP.3.0","Msxml2.XMLHTTP","Microsoft.XMLHTTP");for(var i=0; i<msXmlhttp.length; i++){try{_xmlhttp=new ActiveXObject(msXmlhttp[i]);}catch(e){_xmlhttp=null;}} //循环创建基于IE浏览器的xmlhttp.结束//如果非IE浏览器,则创建基于FireFox等浏览器的xmlhttpRequestif(!_xmlhttp && typeof XMLHttpRequest != "undefined"){_xmlhttp=new XMLHttpRequest();}/*上面的代码成功创建了xmlhttpRequest对像.适用于所有现代浏览器下面我们开始指定要请求的服务端网页,以及请求的方式*//*下面开始指定服务端网页和发送请求*//*定义要请求的服务端网页,为了简单明了,在这里我用的是一个xml文件.因为他不包括任何服务端程序语言.当然你可以使用asp,.net,php等文件.需要提示的是:最正统的ajax技术,都是采用xml作为数据传输格式.你可以使用各种服务端程序来生成xml 格式*/var url = "back.xml"_xmlhttp.open("get",url,true);//经过测试xml文件只能以get方式请求.但是利用程序输出的xml就可以用post//下面这句很重要建议阅读onreadystatechange属性详细解释_xmlhttp.onreadystatechange = function(){if(_xmlhttp.readyState==4){if(_xmlhttp.status==200){var xmlData=_xmlhttp.responseXML;var my_name = xmlData.getElementsByTagName("name")[0].firstChild.nodeValue; document.getElementById("str").innerHTML = my_name;}}}_xmlhttp.send(null);</script>本实例所有代码均已完成.运行实例以后你会看到上面的那个div会有内容显示出来.你可以打开这个xml文件查看其内容:<a href="/xmlhttp/back.xml">xml 文件</a></body></html>一、XMLHttpRequest 对象的方法与属性全面剖析XMLHttpRequest对象2006-11-27 09:31作者:朱先忠编译出处:天极软件责任编辑:方舟推荐:AJAX专区XMLHttpRequest对象是当今所有AJAX和Web 2.0应用程序的技术基础。
XMLHttpRequest对象

Neusoft Institute of Information
授课要点
• XMLHttpRequest对象简介 • XMLHttpRequest对象的使用
IT Education & Training
Apr 2008
Neusoft Institute of Information
IT Education & Training
Apr 2008
Neusoft Institute of Information
获取异步返回的数据
• responseText属性: – 将响应消息作为字符串返回,默认将响应数据的编 码定为UTF-8。 • responseXML属性: • 将响应信息格式化为Xml Document对象并返回,这里 注意响应的消息必须符合xml规范,响应报头也必须包括 Content-Type: text/xml;
IT Education & Training
Apr 2008
Neusoft Institute of Information
XMLHttpRequest对象的常用方法
方 abort() getAllResponseHeaders() 法 停止当前请求 将HTTP请求的所有响应头作为键/值对返 回 描 述
200表示请求成功
IT Education & Training
Apr 2008
Neusoft Institute of Information
设置状态改变时的处理函数
• • • • 示例: xhr.onreadystatechange = getData; function getData() { if(xhr.readyState == 4 && xhr.status == 200) { //执行语句 } • }
xmlHttpRequest详解

AJAX核心对象-- XMLHttpRequest 对象使用详解(一)作者:Brett McLaughlin多数Web 应用程序都使用请求/响应模型从服务器上获得完整的HTML 页面。
常常是点击一个按钮,等待服务器响应,再点击另一个按钮,然后再等待,这样一个反复的过程。
有了Ajax 和XMLHttpRequest 对象,就可以使用不必让用户等待服务器响应的请求/响应模型了。
本文中,Brett McLaughlin 介绍了如何创建能够适应不同浏览器的XMLHttpRequest 实例,建立和发送请求,并响应服务器。
本文中,您将开始接触最基本和基础性的有关Ajax 的全部对象和编程方法:XMLHttpRequest 对象。
该对象实际上仅仅是一个跨越所有Ajax 应用程序的公共线程,您可能已经预料到,只有彻底理解该对象才能充分发挥编程的潜力。
事实上,有时您会发现,要正确地使用XMLHttpRequest,显然不能使用XMLHttpRequest。
这到底是怎么回事呢?Web 2.0 一瞥在深入研究代码之前首先看看最近的观点——一定要十分清楚Web 2.0 这个概念。
听到Web 2.0 这个词的时候,应该首先问一问“Web 1.0 是什么?” 虽然很少听人提到Web 1.0,实际上它指的就是具有完全不同的请求和响应模型的传统Web。
比如,到 网站上点击一个按钮或者输入搜索项。
就会对服务器发送一个请求,然后响应再返回到浏览器。
该请求不仅仅是图书和书目列表,而是另一个完整的HTML 页面。
因此当Web 浏览器用新的HTML 页面重绘时,可能会看到闪烁或抖动。
事实上,通过看到的每个新页面可以清晰地看到请求和响应。
Web 2.0(在很大程度上)消除了这种看得见的往复交互。
比如访问Google Maps 或Flickr 这样的站点(到这些支持Web 2.0 和Ajax 站点的链接请参阅参考资料)。
比如在Google Maps 上,您可以拖动地图,放大和缩小,只有很少的重绘操作。
XMLHTTPRequest的属性和方法简介

XMLHTTPRequest的属性和⽅法简介⽽设计AJAX时使⽤的⼀个重要的技术(⼯具)就是XMLHTTPRequest对象了。
这⾥海啸把我学习XMLHTTPRequest对象的⼀点资料拿出来跟⼤家⼀起分享。
⽂中的资料都是海啸在学习时在⽹上收集的,如果您开过,那就再加深下印象吧!(如果您觉得侵犯了您的版权,请联系海啸。
(haixiao_yao[at]))最通⽤的定义为:XmlHttp是⼀套可以在Javascript、VbScript、Jscript等脚本语⾔中通过http协议传送或从接收 XML及其他数据的⼀套API。
XmlHttp最⼤的⽤处是可以更新⽹页的部分内容⽽不需要刷新整个页⾯。
(这个功能正是AJAX的⼀⼤特点之⼀:))来⾃MSDN的解释:XmlHttp提供客户端同http服务器通讯的协议。
客户端可以通过XmlHttp对象 (MSXML2.XMLHTTP.3.0)向http服务器发送请求并使⽤微软XML⽂档对象模型Microsoft? XML Document Object Model (DOM)处理回应。
这⾥说些题外话,其实这个东西很早就出现了,只是以前浏览器的⽀持不够,只有IE中才⽀持,所以⼤多数的WEB程序员都没有怎么⽤他,但是现在情况发⽣了很⼤地改变,Mozilla和Safari把它采⽤为事实上的标准,主流的浏览器都开始⽀持XMLHTTPRequest对象了。
但是这⾥需要重点说明的是XMLHTTPRequest⽬前还不是⼀个W3C的标准,所以在不同的浏览器上表现也稍有些区别。
对了,说到区别,我们这⾥来看看怎么来声明(使⽤)它,在使⽤XMLHTTPRequest对象发送请求和处理响应之前,我们必须要⽤ javascript创建⼀个XMLHTTPRequest对象。
(IE把XMLHTTPRequest实现为⼀个ActiveX对象,其他的浏览器[如Firefox/Safari/Opear]则把它实现为⼀个本地的javascript对象)。
详细解读XMLHttpRequest(一)同步请求和异步请求

详细解读XMLHttpRequest(⼀)同步请求和异步请求本⽂主要参考:XMLHttpRequest 让发送⼀个HTTP请求变得⾮常容易。
你只需要简单的创建⼀个请求对象实例,打开⼀个URL,然后发送这个请求。
当传输完毕后,结果的HTTP状态以及返回的响应内容也可以从请求对象中获取。
通过XMLHttpRequest⽣成的请求可以有两种⽅式来获取数据,异步模式或同步模式。
请求的类型是由这个XMLHttpRequest对象的open()⽅法的第三个参数async的值决定的。
如果该参数的值为false,则该XMLHttpRequest请求以同步模式进⾏,否则该过程将以异步模式完成。
两种通信模式:同步和异步请求:同步请求主线程中的同步请求会阻塞页⾯,由于对⽤户体验的糟糕效果,部分最新浏览器在主线程上的同步请求已经被弃⽤。
在极少数情况下,使⽤同步模式的XMLHttpRequests会⽐使⽤异步模式更适合。
1. 在Worker中使⽤XMLHttpRequest时,同步请求⽐异步请求更适合。
主页中代码:<script type="text/javascript">var oMyWorker = new Worker("myTask.js");oMyWorker.onmessage = function(oEvent) {alert("Worker said: " + oEvent.data);};oMyWorker.postMessage("Hello");</script>myFile.txt ( XMLHttpRequest对象同步请求的⽂件):Hello World!!包含了Worker代码:myTask.jsself.onmessage = function (oEvent) {if (oEvent.data === "Hello") {var oReq = new XMLHttpRequest();oReq.open("GET", "myFile.txt", false); // 同步请求oReq.send(null);self.postMessage(oReq.responseText);}};注意: 由于使⽤了Worker,所以该请求实际上也是异步的.可以使⽤类似的⽅法,让脚本在后台与服务器交互,预加载某些内容.查看使⽤web workers了解更多详情2. 不得不使⽤同步请求的情况在少数情况下,只能使⽤同步模式的XMLHttpRequest请求.⽐如在 window.onunload和window.onbeforeunload 事件处理函数中。
XMLHttpRequest对象五步使用法

XMLHttpRequest对象五步使用法在Ajax应用程序中,XmlHttpRequest对象负责将用户信息以异步通信地发送到服务器端,并接收服务器返回的响应信息和数据。
XMLHttpRequest简介XMLHttpRequest可以提供不重新加载页面的情况下更新网页,在页面加载后在客户端向服务器请求数据,在页面加载后在服务器端接受数据,在后台向客户端发送数据。
XMLHttpRequest 对象提供了对 HTTP 协议的完全的访问,包括做出 POST 和 HEAD 请求以及普通的 GET 请求的能力。
XMLHttpRequest 可以同步或异步返回 Web 服务器的响应,并且能以文本或者一个DOM 文档形式返回内容。
尽管名为 XMLHttpRequest,它并不限于和XML 文档一起使用:它可以接收任何形式的文本文档。
XMLHttpRequest 对象是名为 AJAX 的Web 应用程序架构的一项关键功能。
XMLHttpRequest和JavascriptJavascript本身并未具备向服务器发送请求的能力,要么使用window.open()方法重新打开一个页面向服务器提交请求,要么使用XMLHttpRequest对象发送请求。
不同的是,前者是普通的即同步交互模式,而后者是异步交互方式。
XMLHttpRequest提供了一系列的属性和方法,来向服务器发送异步的http请求;在服务器处理用户请求的过程中,XMLHttpRequest通过属性的状态值来实时反映http请求所处的状态,并根据这些状态指示Javascript做相应的处理;当服务器顺利完成响应用户行为的动作、并将响应数据返回时,XMLHttpRequest提供的response系列方法,可以将这些响应数据以文本、XML Document 对象、Ado Stream对象或者unsignedbyte数组的方式组装起来,提供给Javascript处理。
XML文档处理 & XMLHttpRequest对象

XML文档处理加载xml文件IE:xmlDoc=new ActiveXObject("Microsoft.XMLDOM");xmlDoc.async="false";xmlDoc.load("books.xml");其他浏览器:xmlDoc=document.implementation.createDocument("","",null);xmlDoc.async="false";xmlDoc.load("books.xml");加载xml字符串IE:xmlDoc=new ActiveXObject("Microsoft.XMLDOM");xmlDoc.async="false";xmlDoc.loadXML(txt);其他浏览器:parser=new DOMParser();xmlDoc=parser.parseFromString(txt,"text/xml");selectNodes()、selectSingleNode()方法这两个方法是IE才有的,如果考虑跨浏览器,请尽量使用标准DOM操纵方式替代,或者在其他浏览器中先实现以上方法再使用。
xml属性IE可以用obj.xml来显示obj的节点内容,但是这个属性是其他浏览器没有,所以要用(new XMLSerializer()).serializeToString(obj)方法来显示节点内容。
XMLHttpRequest对象获得IE和其他浏览器中的XMLHttpRequest对象获得IE和其他浏览器中的XMLHttpRequest对象function getXMLHTTPRequest(){var myRequest = null;if(window.XMLHttpRequest) // IE以外的浏览器{myRequest = new XMLHttpRequest();}else if(typeof ActiveXObject != "undefined") // IE{myRequest = new ActiveXObject("Microsoft.XMLHTTP");}return myRequest;}然后我们就可以使用上面的方法来进行请求操作了。
XMLHttpRequest对象五步使用法

在Ajax应用程序中,XmlHttpRequest对象负责将用户信息以异步通信地发送到服务器端,并接收服务器返回的响应信息和数据。
XMLHttpRequest简介XMLHttpRequest可以提供不重新加载页面的情况下更新网页,在页面加载后在客户端向服务器请求数据,在页面加载后在服务器端接受数据,在后台向客户端发送数据。
XMLHttpRequest 对象提供了对 HTTP 协议的完全的访问,包括做出 POST 和 HEAD 请求以及普通的 GET 请求的能力。
XMLHttpRequest 可以同步或异步返回 Web 服务器的响应,并且能以文本或者一个DOM 文档形式返回内容。
尽管名为 XMLHttpRequest,它并不限于和XML 文档一起使用:它可以接收任何形式的文本文档。
XMLHttpRequest 对象是名为 AJAX 的Web 应用程序架构的一项关键功能。
XMLHttpRequest和JavascriptJavascript本身并未具备向服务器发送请求的能力,要么使用window.open()方法重新打开一个页面向服务器提交请求,要么使用XMLHttpRequest对象发送请求。
不同的是,前者是普通的即同步交互模式,而后者是异步交互方式。
XMLHttpRequest提供了一系列的属性和方法,来向服务器发送异步的http请求;在服务器处理用户请求的过程中,XMLHttpRequest通过属性的状态值来实时反映http请求所处的状态,并根据这些状态指示Javascript做相应的处理;当服务器顺利完成响应用户行为的动作、并将响应数据返回时,XMLHttpRequest提供的response系列方法,可以将这些响应数据以文本、XML Document对象、Ado Stream对象或者unsignedbyte数组的方式组装起来,提供给Javascript处理。
XMLHttpRequest的五步使用法:1、建立XMLHttpRequest对象2、注册回调函数3、使用open方法社会自和服务器端交互的基本信息4、设置发送的数据,开始和服务器端交互5、在回调函数中判断交互是否结束,响应是否正确,并根据需要过去服务器端返回的数据,更新页面内容下面我们以用户名确认来实现XMLHttpRequest的五步使用法:<!DOCTYPE html><html><head><title></title><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><script type="text/javascript">var xmlhttp;function submit(){//1.创建XHLHttpRequest对象if(window.XMLHttpRequest){//alert("IE7,IE8 ,FireFox。
关于XMLHTTPRequest

XMLHttpRequest对象暴露各种属性、方法和事件以便于脚本处理和控制HTTP请求与响应。下面,我们将对此展开详细的讨论。
readyState属性
当XMLHttpRequest对象把一个HTTP请求发送到服务器时将经历若干种状态:一直等待直到请求被处理;然后,它才接收一个响应。这样以来,脚本才正确响应各种状态-XMLHttpRequest对象暴露一个描述对象的当前状态的readyState属性,如表格1所示。
无论readyState值何时发生改变,XMLHttpRequest对象都会激发一个readystatechange事件。其中,onreadystatechange属性接收一个EventListener值-向该方法指示无论readyState值何时发生改变,该对象都将激活。
responseText属性
responseXML属性
此responseXML属性用于当接收到完整的HTTP响应时(readyState为4)描述XML响应;此时,Content-Type头部指定MIME(媒体)类型为text/xml,application/xml或以+xml结尾。如果Content-Type头部并不包含这些媒体类型之一,那么responseXML的值为null。无论何时,只要readyState值不为4,那么该responseXML的值也为null。
XMLHttpRequest其实是用语不当,它其实可以使用任何纯文本格式与服务器通信,而不限于XML格式。注意上面客户和服务器两端的Content-Type设置需要对应起来,如果它们都改成text/plain,那就是使用纯文本来进行通信,在回调函数中就需要访问XMLHttpRequest对象的responseText属性来获得纯文本形式的返回数据。
xml以及xmlhttprequest入门详细教程

第1 章XML 简介Previous PageNext PageXML 被设计用来传输和存储数据。
HTML 被设计用来显示数据。
应该掌握的基础知识:在您继续学习之前,需要对以下知识有基本的了解:HTML / XHTMLJavaScript如果您希望首先学习这些项目,请在我们的首页访问这些教程。
什么是XML?XML 指可扩展标记语言(EXtensible Markup Language)XML 是一种标记语言,很类似HTMLXML 的设计宗旨是传输数据,而非显示数据XML 标签没有被预定义。
您需要自行定义标签。
XML 被设计为具有自我描述性。
XML 是W3C 的推荐标准XML 与HTML 的主要差异XML 不是HTML 的替代。
XML 和HTML 为不同的目的而设计:XML 被设计为传输和存储数据,其焦点是数据的内容。
HTML 被设计用来显示数据,其焦点是数据的外观。
HTML 旨在显示信息,而XML 旨在传输信息。
没有任何行为的XMLXML 是不作为的。
也许这有点难以理解,但是XML 不会做任何事情。
XML 被设计用来结构化、存储以及传输信息。
下面是John 写给George 的便签,存储为XML:<note><to>George</to><from>John</from><heading>Reminder</heading><body>Don't forget the meeting!</body></note>这个标签有标题以及留言。
它也包含了发送者和接受者的信息。
但是,这个XML 文档仍然没有做任何事情。
它仅仅是包装在XML 标签中的纯粹的信息。
我们需要编写软件或者程序,才能传送、接收和显示出这个文档。
XML 仅仅是纯文本XML 没什么特别的。
它仅仅是纯文本而已。
有能力处理纯文本的软件都可以处理XML。
XMLHttpRequest使用详解

XMLHttpRequest使⽤详解1.什么是XMLHttpRequestXMLHttpRequest是⼀个浏览器接⼝,使得Javascript可以进⾏HTTP(S)通信,这就是我们熟悉的AJAX。
早期,各个浏览器的实现都不同,HTML5之后,W3C进⾏了统⼀。
2.XMLHttpRequest使⽤⽰例<script type="text/javascript">var xhr = new XMLHttpRequest();xhr.timeout = 3000;xhr.ontimeout = function (event) {alert("请求超时!");}var formData = new FormData();formData.append('tel', '182********');formData.append('psw', '111111');xhr.open('POST', ':8000/login');xhr.send(formData);xhr.onreadystatechange = function () {if (xhr.readyState == 4 && xhr.status == 200) {alert(xhr.responseText);}else {alert(xhr.statusText);}}</script>运⾏结果:属性说明:* xhr.readyState:XMLHttpRequest对象的状态,等于4表⽰数据已经接收完毕。
* xhr.status:服务器返回的状态码,等于200表⽰⼀切正常。
* xhr.responseText:服务器返回的⽂本数据* xhr.responseXML:服务器返回的XML格式的数据* xhr.statusText:服务器返回的状态⽂本。
XMLHttpRequest对象的属性与方法

XMLHttpRequest对象的属性与⽅法XMLHttpRequest对象是Ajax的核⼼,它有很多属性和⽅法。
1,readyState属性当⼀个XMLHttpRequest对象被创⽴后,readyState属性标⽰了当前对象处于什么状态,可以通过对该属性的访问,来判读此次请求的状态然后做出相应的操作,case 0 :未初始化状态,此时,已经创建了⼀个XMLHttpRequest对象,但是还没有初始化。
Case 1:准备发送状态:此时,已经调⽤了XMLHttpRequest对象的open()⽅法,并且XMLHttpRequest对象已经准备好将⼀个请求发送到服务器。
case 2:已发送状态,此时已经通过send⽅法把⼀个请求发送到服务器,等待响应。
case 3:正在接收状态,此时已经接收到HTTP响应头部信息,但是消息体部分还没有完全接收到。
case 4:完成响应状态,此时已经完成了HttpResponse响应的接收2.responseText属性responseText属性包含客服端接收到的HTTP响应的⽂本内容,当readyState属性为0、1或2时,responseText属性包含⼀个空字符串:当readyState属性值为3时,响应中包含客服端还没完成的响应信息;当readyState属性值卫4,responseText属性才包含完整的响应信息。
3.responseXML属性只有当readyState属性为4,并且响应头部的Content-Type的MIME类型被指定为XML(text/xml或者application/xml)时,该属性才会有值并且被解析成⼀个XML⽂档,否则该属性为null。
如果是回传的XML⽂档结构不良或者未完成响应回传,该属性也会为null。
responseXML属性⽤来描述被XMLHttpRequest解析后的XML⽂档的属性。
4.status属性status属性描述了HTTP状态代码,注意,仅当readyState属性值为3(正在接受中)或者4(已加载)时,才能对此属性进⾏访问。
XMLHttpRequest对象详解

XMLHttpRequest对象详解AJAX大家已经都知道了,是为了实现异步通讯,提高用户体验度,而将很多旧知识(XML,DOM,JavaScript,HTML,Jquery,Css……)重新融合的一个新的知识框架。
而,XMLHttpRequest对象则是其中的重重之中。
这篇博客重点总结一下这个对象的使用。
当然还是按照经典的五步法来学习,以后在实践中有更多更好的想法,会拿出来分享的!首先,需要先了解这个对象的属性和方法:属性说明readyState 表示XMLHttpRequest对象的open;1:open方法成功调用,但2:send方法已经调用,尚未3:正在接受数据。
Http响应4:完成,即响应数据接受完Onreadystatechange 请求状态改变的事件触发器(的javascript函数)。
responseText 服务器响应的文本内容responseXML 服务器响应的XML内容对应Status 服务器返回的http 状态码。
“服务器内部错误”等。
statusText 服务器返回状态的文本信息。
方法说明Open(string method,string url,boolean asynch, String username,string password) 指定和服务器端交互的HTTP Method:表示http请求方法,一url:表示请求的服务器的地址asynch:表示是否采用异步方后边两个可以不指定,usern 供http认证机制需要的用户名Send(content) 向服务器发出请求,如果采用content可以指定为null表示不流或字符串。
SetRequestHeader(String header,String Value) 设置HTTP请求中的指定头部此方法需在open方法以后调用getAllResponseHeaders() 返回包含Http的所有响应头信等内容。
返回值是一个字符串,包含所开,每一组键之间用CR和getResponseHeader(String header) 返回HTTP响应头中指定的键Abort() 停止当前http请求。
XMLHttpRequest对象详解

XMLHttpRequest对象详解1、概述2、XMLHttpRequest 的方法和属性XMLHttpRequest包含了基本的属性和方法,正是通过这些方法和属性实现了对服务器的通讯。
Ajax依赖XMLHttpRequest完成与服务器的通信。
XMLHttpRequest的基本方法如下:Abort():停止发送当前请求。
getAllResponseHeaders():获取服务器返回的全部响应头。
getResponseHeader(“headerLabel”):根据响应头的名字来获取响应头。
Open(“method”,”URL”,…):建立与服务器的连接,并设置请求的方法是否使用异步请求。
如果远程服务需要用户名,密码,则提供。
Send(content):发送请求。
setRequestHeader(“label”,”values”):在发送请求之前,先设置请求头。
看代码2/getAllResponseHeadersXMLHttpRequest的属性如下:1、onreadystatechange:用于指定XMLHttpRequest对象状态改变时的事件处理函数。
当XMLHttpRequest的状态放生改变时,该函数将被触发。
XMLHttpRequest对象有如下几种状态:0 :XMLHttpRequest对象还没有完成初始化;1 :XMLHttpRequest对象开始发送请求;2 :XMLHttpRequest对象的请求发送完成;3 :XMLHttpRequest对象开始读取服务器的响应;4 :XMLHttpRequest对象读取服务器响应结束。
2、readyState: XMLHttpRequest对象的处理状态。
3、responseText:用于获取服务器的响应文本。
4、responseXML:用于获取服务器响应的XML文档对象。
5、status:服务器返回的状态码,只有当服务器的响应已经完成时,才会有该状态码。
全面剖析XMLHttpRequest对象

全面剖析XM LHttp Reque st对象文章导读1、XM LHttp Reque st对象的属性和事件2、X MLHtt pRequ est对象的方法3、发送请求4、处理请求XM LHttp Reque st对象是当今所有A JAX和W eb 2.0应用程序的技术基础。
尽管软件经销商和开源社团现在都在提供各种AJAX框架以进一步简化XM LHttp Reque st对象的使用;但是,我们仍然很有必要理解这个对象的详细工作机制。
一、引言异步Ja vaScr ipt与X ML(AJ AX)是一个专用术语,用于实现在客户端脚本与服务器之间的数据交互过程。
这一技术的优点在于,它向开发者提供了一种从Web服务器检索数据而不必把用户当前正在观察的页面回馈给服务器。
与现代浏览器的通过存取浏览器DOM结构的编程代码(Ja vaScr ipt)动态地改变被显示内容的支持相配合,AJAX让开发者在浏览器端更新被显示的HTML内容而不必刷新页面。
换句话说,A JAX可以使基于浏览器的应用程序更具交互性而且更类似传统型桌面应用程序。
Googl e的Gma il和Ou tlook Expr ess就是两个使用A JAX技术的我们所熟悉的例子。
而且,AJ AX可以用于任何客户端脚本语言中,这包括JavaS cript,Jscr ipt和V BScri pt。
AJA X利用一个构建到所有现代浏览器内部的对象-XMLH ttpRe quest-来实现发送和接收H TTP请求与响应信息。
一个经由XMLHt tpReq uest对象发送的H TTP请求并不要求页面中拥有或回寄一个<form>元素。
全面剖析XMLHttpRequest对象

全面剖析XMLHttpRequest对象onreadystatechange事件不管readyState值何时发生改变,XML Request对象都会激发一个readystatechange事件。
其中,onreadystatechange属性接收一个EventListener值-向该方法指示不管readyState值何时发生改变,该对象都将激活。
responseText属性那个responseText属性包含客户端接收到的响应的文本内容。
当readyState值为0、1或2时,responseText包含一个空字符串。
当readyState值为3(正在接收)时,响应中包含客户端还未完成的响应信息。
当readyState为4(已加载)时,该responseText包含完整的响应信息。
responseXML属性此responseXML属性用于当接收到完整的响应时(readyState为4)描述XML响应;现在,Content-Type头部指定MIME(媒体)类型为text/xml,application/xml或以+xml结尾。
假如Content-Type头部并不包含这些媒体类型之一,那么responseXML的值为null。
不管何时,只要readyState值不为4,那么该responseXML的值也为null。
事实上,那个responseXML属性值是一个文档接口类型的对象,用来描述被分析的文档。
假如文档不能被分析(例如,假如文档不是良构的或不支持文档相应的字符编码),那么responseXML的值将为null。
status属性那个status属性描述了状态代码,而且其类型为short。
而且,仅当readyState值为3(正在接收中)或4(已加载)时,那个status属性才可用。
当readyState的值小于3时试图存取status的值将引发一个专门。
statusText属性那个statusText属性描述了状态代码文本;同时仅当readyState值为3或4才可用。
第 11 章 XML资料的传递–XmlHttpRequest物件

簡介XmlHttpRequest 簡介XmlHttpRequest
- HTTP連結的請求與回應 HTTP連結的請求與回應
開啟後,呼叫send()方法 將可送出Http請求 方法, 請求, 開啟後,呼叫send()方法,將可送出Http請求, 語法如下: 語法如下: XMLHttp物件 XMLHttp物件.send(請求訊息) 物件.send(請求訊息 請求訊息) 沒有回傳值。 沒有回傳值。 以下敘述將向xmlHttp物件所開啟的連結 物件所開啟的連結, 以下敘述將向xmlHttp物件所開啟的連結,送 HTTP請求 但並不送出資料。 請求, 出HTTP請求,但並不送出資料。 送出請求後,可透過XMLHttp物件的status屬 送出請求後,可透過XMLHttp物件的 物件的status屬 性取得伺服器回應的狀態碼, 性取得伺服器回應的狀態碼,回應的狀態訊 則可透過statusText屬性取得 屬性取得。 息,則可透過statusText屬性取得。
簡介XmlHttpRequest 簡介XmlHttpRequest
- HttpRequest物件的屬性與方法 HttpRequest物件的屬性與方法
readyState(唯讀) readyState(唯讀) 顯示目前HTTP連結狀態的長整數 連結狀態的長整數, 顯示目前HTTP連結狀態的長整數,下表將說 明各數值代表的意義。 明各數值代表的意義。
簡介XmlHttpRequest 簡介XmlHttpRequest
- HttpRequest物件的屬性與方法 HttpRequest物件的屬性與方法
以下是HttpRequest物件的方法介紹 以下是HttpRequest物件的方法介紹。 物件的方法介紹。 abort() 說明:取消目前的HTTP請求 呼叫後, 請求。 說明:取消目前的HTTP請求。呼叫後, readyState屬性將傳回 readyState屬性將傳回0 屬性將傳回0 UNINITIALIZED)。若欲再發出請求, )。若欲再發出請求 (UNINITIALIZED)。若欲再發出請求,必 須再次呼叫send()方法 方法。 須再次呼叫send()方法。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
簡介XmlHttpRequest 簡介XmlHttpRequest
- HTTP連結的請求與回應 HTTP連結的請求與回應
欲開啟HTTP連結時,需呼叫XMLHttp物件 欲開啟HTTP連結時,需呼叫XMLHttp物件 連結時 open()方法 語法如下: 方法, 的open()方法,語法如下: XMLHttp物件 XMLHttp物件.open(方法, 位址, 是否同步, 物件.open(方法 位址, 是否同步, 方法, 使用者名稱, 使用者密碼) 使用者名稱, 使用者密碼) 沒有回傳值。 沒有回傳值。
getAllResponseHeaders()
說明:取得HTTP請求的所有標頭內容。 請求的所有標頭內容。 說明:取得HTTP請求的所有標頭內容
簡介XmlHttpRequest 簡介XmlHttpRequest
- HttpRequest物件的屬性與方法 HttpRequest物件的屬性與方法
getResponseHeader(標頭名稱 getResponseHeader(標頭名稱) 標頭名稱) 說明:取得HTTP請求特定標頭的內容 請求特定標頭的內容。 說明:取得HTTP請求特定標頭的內容。 open(方法 位址, 是否同步, open(方法, 位址, 是否同步, 方法, 使用者名稱, 使用者密碼) 使用者名稱, 使用者密碼) 說明:字串內容為HTTP請求的所有標頭內容 請求的所有標頭內容。 說明:字串內容為HTTP請求的所有標頭內容。 send(請求訊息 send(請求訊息) 請求訊息) 說明:送出HTTP連結請求 回應時, 連結請求。 說明:送出HTTP連結請求。回應時,將預設使 UTF- 為編碼格式。 用UTF-8為編碼格式。 setRequestHeader(標頭名稱 setRequestHeader(標頭名稱, 值) 標頭名稱, 說明:設定HTTP連結請求的自訂標頭 連結請求的自訂標頭。 說明:設定HTTP連結請求的自訂標頭。
簡介XmlHttpRequest 簡介XmlHttpRequest
- HTTP連結的請求與回應 HTTP連結的請求與回應
開啟後,呼叫send()方法 將可送出Http請求 方法, 請求, 開啟後,呼叫send()方法,將可送出Http請求, 語法如下: 語法如下: XMLHttp物件 XMLHttp物件.send(請求訊息) 物件.send(請求訊息 請求訊息) 沒有回傳值。 沒有回傳值。 以下敘述將向xmlHttp物件所開啟的連結 物件所開啟的連結, 以下敘述將向xmlHttp物件所開啟的連結,送 HTTP請求 但並不送出資料。 請求, 出HTTP請求,但並不送出資料。
簡介XmlHttpRequest 簡介XmlHttpRequest
- HttpRequest物件的屬性與方法 HttpRequest物件的屬性與方法
以下是HttpRequest物件的方法介紹 以下是HttpRequest物件的方法介紹。 物件的方法介紹。
abort()
說明:取消目前的HTTP請求。呼叫後, 請求。 說明:取消目前的HTTP請求 呼叫後, readyState屬性將傳回 readyState屬性將傳回0 屬性將傳回0 UNINITIALIZED)。若欲再發出請求, )。若欲再發出請求 (UNINITIALIZED)。若欲再發出請求,必 須再次呼叫send()方法 方法。 須再次呼叫send()方法。
簡介XmlHttpRequest 簡介XmlHttpRequest
- HttpRequest物件的屬性與方法 HttpRequest物件的屬性與方法
以下是HttpRequest物件的方法介紹 以下是HttpRequest物件的方法介紹。 物件的方法介紹。 abort() 說明:取消目前的HTTP請求 呼叫後, 請求。 說明:取消目前的HTTP請求。呼叫後, readyState屬性將傳回 readyState屬性將傳回0 屬性將傳回0 UNINITIALIZED)。若欲再發出請求, )。若欲再發出請求 (UNINITIALIZED)。若欲再發出請求,必 須再次呼叫send()方法 方法。 須再次呼叫send()方法。
簡介XmlHttpRequest 簡介XmlHttpRequest
- HttpRequest物件的屬性與方法 HttpRequest物件的屬性與方法
status(唯讀) status(唯讀) 取得HTTP連結的回應狀態碼 傳回200代表 連結的回應狀態碼, 取得HTTP連結的回應狀態碼,傳回200代表 伺服器已正常回應。 伺服器已正常回應。 statusText(唯讀) statusText(唯讀) 取得HTTP連結的回應狀態文字 連結的回應狀態文字, 取得HTTP連結的回應狀態文字,當伺服器正 常回應時,將傳回OK。 常回應時,將傳回OK。 onreadystatechange(可讀寫) onreadystatechange(可讀寫) 設定當readyState屬性改變時 屬性改變時, 設定當readyState屬性改變時,回應此事件的 程序。此屬性專為IE的Script語言設計 語言設計, 程序。此屬性專為IE的Script語言設計,無法 使用於其他語言。 使用於其他語言。
簡介XmlHttpRequest 簡介XmlHttpRequest
- HTTP連結的請求與回應 HTTP連結的請求與回應
運用XMLHttp物件與伺服端建立 運用XMLHttp物件與伺服端建立HTTP連結, 物件與伺服端建立HTTP連結 連結, 並取得回應的過程,如下圖所示。 並取得回應的過程,如下圖所示。
簡介XmlHttpRequest 簡介XmlHttpRequest
- HttpRequest物件的屬性與方法 HttpRequest物件的屬性與方法
status(唯讀) status(唯讀) 取得HTTP連結的回應狀態碼 傳回200代表 連結的回應狀態碼, 取得HTTP連結的回應狀態碼,傳回200代表 伺服器已正常回應。 伺服器已正常回應。 statusText(唯讀) statusText(唯讀) 取得HTTP連結的回應狀態文字 連結的回應狀態文字, 取得HTTP連結的回應狀態文字,當伺服器正 常回應時,將傳回OK。 常回應時,將傳回OK。 onreadystatechange(可讀寫) onreadystatechange(可讀寫) 設定當readyState屬性改變時 屬性改變時, 設定當readyState屬性改變時,回應此事件的 程序。此屬性專為IE的Script語言設計 語言設計, 程序。此屬性專為IE的Script語言設計,無法 使用於其他語言。 使用於其他語言。
簡介XmlHttpRequest 簡介XmlHttpRequest
- 標頭的取得與自訂
欲取得回應的HTTP訊息之標頭, 欲取得回應的HTTP訊息之標頭,則必須呼叫 訊息之標頭 getAllResponseHeaders()方法與 getAllResponseHeaders()方法與getResponseHeader() 方法與getResponseHeader() 方法。 方法。 呼叫getAllResponseHeaders()方法可取得回應之 呼叫getAllResponseHeaders()方法可取得回應之 HTTP訊息的所有標頭內容 語法說明如下: HTTP訊息的所有標頭內容,語法說明如下: 訊息的所有標頭內容, XMLHttp物件 XMLHttp物件.getAllResponseHeaders() 物件.getAllResponseHeaders() 回傳值為所有標頭內容的字串。 回傳值為所有標頭內容的字串。 欲取得特定標頭時,則可呼叫getResponseHeader()方 欲取得特定標頭時,則可呼叫getResponseHeader()方 法語法說明如下: 法語法說明如下: XMLHttp物件 XMLHttp物件.getResponseHeader(標頭名稱) 物件.getResponseHeader(標頭名稱 標頭名稱) 回傳值為欲取得之特定標頭內容的字串。 回傳值為欲取得之特定標頭內容的字串。
簡介XmlHttpRequest 簡介XmlHttpRequest
- HttpRequest物件的屬性與方法 HttpRequest物件的屬性與方法
responseBody(唯讀) responseBody(唯讀) 以無正負號的位元組陣列形式, 以無正負號的位元組陣列形式,傳回伺服器 的回應。 的回應。 responseStream(唯讀) responseStream(唯讀) Istream物件的形式 傳回伺服器的回應。 物件的形式, 以Istream物件的形式,傳回伺服器的回應。 responseText(唯讀) responseText(唯讀) 以字串的形式,傳回伺服器的回應。 以字串的形式,傳回伺服器的回應。 responseXML(唯讀) responseXML(唯讀) DOM物件的形式 物件的形式, 以XML DOM物件的形式,傳回伺服器的回 應。
簡介XmlHttpRequest 簡介XmlHttpRequest
- HTTP連結的請求與回應 HTTP連結的請求與回應
欲開啟HTTP連結時,需呼叫XMLHttp物件 欲開啟HTTP連結時,需呼叫XMLHttp物件 連結時 open()方法 語法如下: 方法, 的open()方法,語法如下: XMLHttp物件 XMLHttp物件.open(方法, 位址, 是否同步, 物件.open(方法 位址, 是否同步, 方法, 使用者名稱, 使用者密碼) 使用者名稱, 使用者密碼) 沒有回傳值。 沒有回傳值。 以下敘述將運用xmlHttp物件 物件, GET方法開 以下敘述將運用xmlHttp物件,以GET方法開 啟與 間的HTTP連結 連結, 啟與 間的HTTP連結, 並以不同步方式連結。 並以不同步方式連結。
簡介XmlHttpRequest 簡介XmlHttpRequest
- HttpRequest物件的屬性與方法 HttpRequest物件的屬性與方法
readyState(唯讀) readyState(唯讀) 顯示目前HTTP連結狀態的長整數 連結狀態的長整數, 顯示目前HTTP連結狀態的長整數,下表將說 明各數值代表的意義。 明各數值代表的意義。