XMLHTTPReques_status值的含义

合集下载

XMLHttpRequest的一些常见属性

XMLHttpRequest的一些常见属性

XMLHttpRequest的一些常见属性XMLHttpRequest的一些常见属性1、onreadystatechange每个状态改变时都会处发这个事件处理器,指定当readyState属性改变时的事件处理句柄,通常会调用一个javascript函数。

如xmlHttp.onreadystatechange=callback;function callback(){...}2、readyState返回请求状态。

有5个可取值:0(未初始化)对象已建立,但尚未初始化,即尚未调用open方法创建http请求。

1(初始化)对象已建立,但未调用send方法发送http请求。

2(发送数据)send方法已经被调用,但是当前的状态和http头求和。

3(数据传送中)已经接收部分数据,因为响应及http头不全,这时通过response系列方法获取部分数据可能会出现错误。

4(传送完成)数据传送完毕,此时通过response系列方法可以获取完整的回应数据。

如function callback(){if(xmlHttp.readySatate==4) window.alert("完成");}3、responseBody将服务器的响应信息正文以unsigned byte数据形式返回,unsigned byte表示直接从服务器返回的未经解码的二进制数据。

4、responseStream以Ado Stream形式返回服务器的响应信息。

5、responseText以字符串的形式返回服务器的响应信息。

6、responseXML将服务器的响应信息格式化为XML Document对象返回。

7、status返回当前HTTP请求的状态码。

HTTP请求状态及其含义:// 100:Continue(客户必须继续发送请求)// 101:Switching protocols(客户要求服务器根据请求转换HTTP协议版本)// 200:OK(成功)// 201:Created(提示知道新文件的URL)// 202:Accepted(接收和处理,但处理未完成)// 203:Non-Authoritative Information(返回信息不正确或不完整)// 204:No Content(请求收到,但返回信息为空)// 205:Reset Content(服务器完成请求,用户代理必须复位当前用户已经浏览过的文件)// 206:Partial Content(服务器已经完成部分用户的GET请求)// 300:Multiple Choices(请求的资源可在多处得到)// 301:Moved Permanently(删除请求数据)// 302:Found(在其它地址发现了请求数据)// 303:See Other(建议客户访问其他URL或访问方式)// 304:Not Modified(客户端已经执行了GET,但文件未变化)// 305:Use Proxy(请求的资源必须从服务器指定的地址得到)// 307:Temporary Redirect(申明请求的资源临时性删除)// 400:Bad Request(错误请求,如语法错误)// 401:Unauthorized(请求授权失败)// 402:Payment Required(保留有效ChangT o头响应)// 403:Forbidden(请求不允许)// 404:Not Found(没有找到文件、查询或URI)// 405:Method Not Allowed(用户在Request-Line字段定义的方法不允许)// 406:Not Acceptable(根据用户发送的Accept,请求资源不可访问)// 407:Proxy Authentication Required(用户必须在代理服务器上得到授权)// 408:Request Timeout(请求超时)// 409:Conflict(对当前资源状态,请求不能完成)// 410:Gone(服务器不在有此资源且无进一步的参考地址)// 411:Length Required(服务器拒绝用户定义的Content-Length属性请求)// 412:Precondition Failed(一个或多个请求头字段在当前请求中错误)// 413:Request Entity Too Large(请求的资源大于服务器允许的大小)// 414:Request-URI Too Long(请求的资源URI大于服务器允许的长度)// 415:Unsupported Media Type (请求资源不支持请求项目格式)// 416:Requested Range Not Suitable// 417:Expectation Failed// 500:Internal Server Error (服务器产生内部错误)// 501:Not Implemented(服务器不支持请求的函数)// 502:Bad Gateway(服务器暂时不可用)// 503:Service Unavailable(服务器过载或暂停维修)// 504:Gateway Timeout (服务器未响应)// 505:HTTP Version Not Supported(服务器不支持或拒绝请求头中指定的HTTP版本)8、statusText返回当前响应行的状态。

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 readyState 和status状态对照

对象XMLHttpRequest readyState 和status状态对照

300——请求的资源可在多处得到
301——删除请求数据
302——在其他地址发现了请求数据
303——建议客户访问其他URL或访问方式
304——客户端已经执行了GET,但文件未变化
305——请求的资源必须从服务器指定的地址得到
306——前一版本HTTP中使用的代码,现行版本中不再使用
一级服务器不能满足请求
500——服务器产生内部错误
501——服务器不支持请求的函数
502——服务器暂时不可用,有时是为了防止发生系统过载
503——服务器过载或暂停维修
504——关口过载,服务器使用另一个关口或服务来响应用户,等待时间设定值较长
505——服务器不支持或拒绝支请求头中指定的HTTP版本
307——申明请求的资源临时性删除
400——错误请求,如语法错误
401——请求授权失败
402——保留有效ChargeTo头响应
403——请求不允许
404——没有发现文件、查询或URl
405——用户在Request-Line字段定义的方法不允许
406——根据用户发送的Accept拖,请求资源不可访问
200——交易成功
201——提示知道新文件的URL
202——接受和处理、但处理未完成
203——返回信息不确定或不完整
204——请求收到,但返回信息为空
205——服务器完成了请求,用户代理必须复位当前已经浏览过的文件
206——服务器已经完成了部分用户的GET请求
属性status的含义:
0**:未被始化
1**:请求收到,继续处理
2**:操作成功收到,分析、接受

XMLHttpRequest中文参考手册(14)

XMLHttpRequest中文参考手册(14)

open创建建个新新http 请求求并指指指请求新求求求URL 以以验验信信语求参数bstrMethodhttp 求求求方方方POST 求GET 求PUT 以PROPFIND 。

写 不不不。

bstrUrl请求新URL 地地求地以为为为地地地地以为相为 地地。

varAsync[地选]布尔型求指指指请求求求为异步求方求方认为true 。

方。

为真求当当态改变变会调用onreadystatechange 属性指指新性调函数。

bstrUser[地选]方。

如务器器器验验求指处指指用户名求方。

名指指求当如务器器器验验变求会弹出验验 窗窗。

bstrPassword[地选]验验信信信新信码部部求方。

用户名为空求则指值将 被被被。

Example下下新方下下下从如务器请求book.xml,并显下示信新book字字。

XMLHTTP 为象参考XMLHTTPRequest 为象XMLHTTPRequest 成员onreadystatechange readyState responseBody responseStream responseText responseXML status statusText abortgetAllResponseHeaders getResponseHeader open sendsetRequestHeader备注调用指求求用求地以调用send 求求方如务器发送数据。

参考abort 求求onreadystatechange 属性 XMLHTTPRequest 为象Copyright © 2005 . All rights reserved.禁止任何形方新禁止任何形方新转载转载转载!!。

XMLHTTPRequest的属性和方法简介

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(⼀)同步请求和异步请求本⽂主要参考: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 事件处理函数中。

AJAX问题XMLHttpRequest.status=0是什么含义

AJAX问题XMLHttpRequest.status=0是什么含义

AJAX问题XMLHttpRequest.status=0是什么含义在调⽤AJAX的时候遇到了XMLHttpRequest. status为0 的情况,http协议⾥可是没这个状态码的,众所周知,XMLHttpRequest. Status为HTTP请求状态码,⼀般为1xx-5xx,这个0是什么含义,让我觉得很好奇。

X MLHttpRequest 对象的三有个重要的属性:onreadystatechange存储函数(或函数名),每当 readyState 属性改变时,就会调⽤该函数。

readyState存有 XMLHttpRequest 的状态。

从 0 到 4 发⽣变化。

0: 请求未初始化1: 服务器连接已建⽴2: 请求已接收3: 请求处理中4: 请求已完成,且响应已就绪status200: "OK"404: 未找到页⾯XMLHttpRequest status = 0 问题最后翻啊翻啊,找啊找啊,终于找到⼀个XMLHttpRequest的说明The status attribute must return the result of running these steps:status的值⼀定会返回运⾏这些步骤的结果。

1、If the state is UNSENT or OPENED, return 0.(如果状态是UNSENT或者OPENED,返回0)2、If the error flag is set, return 0.(如果错误标签被设置,返回0)3、Return the HTTP status code.(返回HTTP状态码)如果在HTTP返回之前就出现上⾯两种情况,就出现0了。

后来我⼜查阅到了,0 代表本地响应成功。

应该是xmlhttp⾃⼰在模拟,因为根本就没通过服务器。

本地直接打开⽽已。

OPENED了,所以status为0。

第⼆个button的url访问虽然是其他域名,抓包是有的,但是,这是跨域访问了,虽然去访问了,应该是浏览器跨域的返回头没有允许,所以浏览器阻⽌,Access-Control-Allow-Origin这个属性。

ASP XMLHttpRequest对象属性

ASP  XMLHttpRequest对象属性

ASP XMLHttpRequest对象属性创建好XMLHttpRequest对象之后,就可以调用该对象的方法和属性进行数据异步传输了。

首先介绍该对象的属性,如表7-1所示,下面将会详细讨论这些属性。

1.onreadystatechange属性onreadystatechange属性表示当每个状态改变时都会触发这个事件处理器,通常会调用一个JavaScript函数。

即当服务器返回数据到客户端时,需要相应的JavaScript 函数去处理这些数据,而这个JavaScript函数就使用该属性定义。

2.readyState属性readyState用来表示请求的状态。

有5个可取值,分别为:●0 表示未初始化,即对象已建立,但是尚未初始化(尚未调用open方法)。

● 1 表示正在加载,此时对象已建立,尚未调用send方法。

● 2 表示已加载,即send方法已调用,但是当前的状态及http头未知。

● 3 表示交互中,此时已接收部分数据,因为响应及http头不全,这时通过responseBody和responseText获取部分数据会出现错误。

● 4 表示完成,即数据接收完毕,此时可以通过responseBody和responseText获取完整的回应数据。

3.responseBody属性当服务器返回请求的状态为完成时,可以通过此属性来获得接收的数据,该属4.responseStream属性5.responseText属性该属性表示服务器的文本响应,其处理结果以字符串形式返回,XMLHttpRequest默认将响应数据的编码定为UTF-8。

如果服务器返回的是XML文档,此属性并不处理XML文档中的编码声明,需要使用responseXML来处理。

6.responseXML属性该属性表示服务器的响应,其结果以XML文件格式返回。

这个对象可以解析为一个DOM对象。

即将响应信息格式化为Xml Document对象并返回。

ASP XMLHttpRequest对象属性

ASP  XMLHttpRequest对象属性

ASP XMLHttpRequest对象属性创建好XMLHttpRequest对象之后,就可以调用该对象的方法和属性进行数据异步传输了。

首先介绍该对象的属性,如表6-23所示,下面将会详细讨论这些属性。

1onreadystatechange属性表示当每个状态改变时都会触发这个事件处理器,通常会调用一个JavaScript函数。

即当服务器返回数据到客户端时,需要相应的JavaScr ipt函数去处理这些数据,而这个JavaScript函数就使用该属性定义。

2.readyState属性readyState用来表示请求的状态。

有5个可取值,分别为:●0 表示未初始化,即对象已建立,但是尚未初始化(尚未调用open方法)。

● 1 表示正在加载,此时对象已建立,尚未调用send方法。

● 2 表示已加载,即send方法已调用,但是当前的状态及http头未知。

● 3 表示交互中,此时已接收部分数据,因为响应及http头不全,这时通过responseBody和responseText获取部分数据会出现错误。

● 4 表示完成,即数据接收完毕,此时可以通过responseBody和responseText获取完整的回应数据。

3.responseBody属性当服务器返回请求的状态为完成时,可以通过此属性来获得接收的数据,该属性得到的是二进制的byte流。

语法如下所示:4.responseStream属性以ADO Stream对象的形式返回响应信息,语法如下所示:5.responseText属性该属性表示服务器的文本响应,其处理结果以字符串形式返回,XMLHttpRequ est默认将响应数据的编码定为UTF-8。

如果服务器返回的是XML文档,此属性并不处理XML文档中的编码声明,需要使用responseXML来处理。

6.responseXML属性该属性表示服务器的响应,其结果以XML文件格式返回。

这个对象可以解析为一个DOM对象。

ajax入门基础之XMLHttpRequest对象总结

ajax入门基础之XMLHttpRequest对象总结

ajax入门基础之XMLHttpRequest对象总结ajax 入门基础之 XMLHttpRequest对象总结ajax 入门基础之 XMLHttpRequest对象总结XMLHttpRequest 供应客户端同http服务器通讯的协议一:创建IE : http_request = new ActiveXObject(Msxml2.XMLHTTP); http_request = new ActiveXObject(Microsoft.XMLHTTP);非IE: http_request = new XMLHttpRequest();二:onreadystatechange指定当readyState属性转变时的大事处理句柄语法http_request .onreadystatechange = funcMyHandler;三:readyState返回XMLHTTP恳求的当前状态变量,此属性只读,状态用长度为4的整型表示.定义如下:第1页/共17页0 (未初始化) 对象已建立,但是尚未初始化(尚未调用open方法)1 (初始化) 对象已建立,尚未调用send方法2 (发送数据) send方法已调用,但是当前的状态及http头未知3 (数据传送中) 已接收部分数据,由于响应及http头不全,这时通过responseBody和responseText猎取部分数据会消失错误,4 (完成) 数据接收完毕,此时可以通过通过responseBody和responseText猎取完整的回应数据四:responseBody返回某一格式的服务器响应数据五:responseStream以Ado Stream对象的形式返回响应信六:responseText将响应信息作为字符串返回备注变量,此属性只读,将响应信息作为字符串返回。

XMLHTTP尝试将响应信息解码为Unicode字符串,XMLHTTP默认第2页/共17页将响应数据的编码定为UTF-8,假如服务器返回的数据带BOM(byte -order mark),XMLHTTP可以解码任何UCS-2 (big or little endian)或者UCS-4 数据。

XMLHttpRequest对象属性参数参考

XMLHttpRequest对象属性参数参考

XMLHttpRequest对象属性参数参考readyState:提供当前 HTML 的就绪状态。

readyState可能返回的值:0:请求未初始化(还没有调⽤ open())。

1:请求已经建⽴,但是还没有发送(还没有调⽤ send())。

2:请求已发送,正在处理中(通常现在可以从响应中获取内容头)。

3:请求在处理中;通常响应中已有部分数据可⽤了,但是服务器还没有完成响应的⽣成。

4:响应已完成;您可以获取并使⽤服务器的响应了。

status:返回当前请求的 HTTP 状态码,因为 XMLHTTP 返回成功了,不⼀定表⽰服务器已经正确处理我们的数据了,可能出现了 500服务器内部错误或 404找不到⽂件的错误等。

100——客户必须继续发出请求101——客户要求服务器根据请求转换HTTP协议版本200——交易成功201——提⽰知道新⽂件的URL202——接受和处理、但处理未完成203——返回信息不确定或不完整204——请求收到,但返回信息为空205——服务器完成了请求,⽤户代理必须复位当前已经浏览过的⽂件206——服务器已经完成了部分⽤户的GET请求300——请求的资源可在多处得到301——删除请求数据302——在其他地址发现了请求数据303——建议客户访问其他URL或访问⽅式304——客户端已经执⾏了GET,但⽂件未变化305——请求的资源必须从服务器指定的地址得到306——前⼀版本HTTP中使⽤的代码,现⾏版本中不再使⽤307——申明请求的资源临时性删除400——错误请求,如语法错误401——请求授权失败402——保留有效ChargeTo头响应403——请求不允许404——没有发现⽂件、查询或URl405——⽤户在Request-Line字段定义的⽅法不允许406——根据⽤户发送的Accept拖,请求资源不可访问407——类似401,⽤户必须⾸先在代理服务器上得到授权408——客户端没有在⽤户指定的饿时间内完成请求409——对当前资源状态,请求不能完成410——服务器上不再有此资源且⽆进⼀步的参考地址411——服务器拒绝⽤户定义的Content-Length属性请求412——⼀个或多个请求头字段在当前请求中错误413——请求的资源⼤于服务器允许的⼤⼩414——请求的资源URL长于服务器允许的长度415——请求资源不⽀持请求项⽬格式416——请求中包含Range请求头字段,在当前请求资源范围内没有range指⽰值,请求也不包含If-Range请求头字段417——服务器不满⾜请求Expect头字段指定的期望值,如果是代理服务器,可能是下⼀级服务器不能满⾜请求500——服务器产⽣内部错误501——服务器不⽀持请求的函数502——服务器暂时不可⽤,有时是为了防⽌发⽣系统过载503——服务器过载或暂停维修504——关⼝过载,服务器使⽤另⼀个关⼝或服务来响应⽤户,等待时间设定值较长505——服务器不⽀持或拒绝⽀请求头中指定的HTTP版本1xx:信息响应类,表⽰接收到请求并且继续处理2xx:处理成功响应类,表⽰动作被成功接收、理解和接受3xx:重定向响应类,为了完成指定的动作,必须接受进⼀步处理4xx:客户端错误,客户请求包含语法错误或者是不能正确执⾏5xx:服务端错误,服务器不能正确执⾏⼀个正确的请求。

XMLHttpRequest对象的属性与方法

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对象详解

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对象详解

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的readystate属性的五个状态

关于xmlhttprequest的readystate属性的五个状态

关于xmlhttprequest的readystate属性的五个状态昨天做了⼀个利⽤ajax实现页⾯⽆刷新的从服务器端获得时间的例⼦,当时对于xmlhttprequest对象的readystate的后三个状态不是很清楚,想了半天,也不明⽩!后⾯在程序的不同地⽅中⽤alert(xmlhttp.readystate)查看readystate值的变化,并且请教朋友之后,才弄明⽩其中的⼏个问题:创建xmlhttprequest对象之后没有调⽤open之前readystate值为0,调⽤open()之后就变为1了,并且此时onreadystatechange 函数与open()⼏乎是同时执⾏的。

在之后调⽤send⽅法之后,在startHttpRequest函数中readystate值仍为1,⽽调⽤send⽅法之后应该有2,3,4三个状态,⽽只有在startHttpRequest函数⽤alert语句才可以观察到3个值!这是为什么呢?这是因为在startHttpRequest函数中当解析到send这⼀句时,并没有真正开始执⾏send执⾏。

只有send执⾏,才可以在onreadystatechange函数观察到状态值的变化。

readystate不是发送的状态,它是准备发送的状态,要把它想像成“⼈间⼤炮⼀级准备、⼆级准备、放”这样的⼝号,不是请求发送本⾝。

同时xmlhttp也不是监听服务器信息,它是在send的时候获取服务器返回的状态信息⽽已,只有⼀次,监听则是⼀直在观察状态。

⾄此,⼼中的疑惑全部解开!关于readystate五个状态总结如下:readyState 状态状态说明(0)未初始化此阶段确认XMLHttpRequest对象是否创建,并为调⽤open()⽅法进⾏未初始化作好准备。

值为0表⽰对象已经存在,否则浏览器会报错--对象不存在。

(1)载⼊此阶段对XMLHttpRequest对象进⾏初始化,即调⽤open()⽅法,根据参数(method,url,true)完成对象状态的设置。

(4)XMLHTTP中readState与status的状态值

(4)XMLHTTP中readState与status的状态值
304 Not Modified
305 Use Proxy
307 Temporary Redirect
400 Bad Request
401 Unauthorized
402 Payment Required
403 Forbidden
404 Not Found
405 Method Not Allowed
503 Service Unavailable
504 Gateway Timeout
505 HTTP Version Not Supported
readyState的状态值
0 (未初始化) 对象已建立,但是尚未初始化(尚未调用open方法)
1 (初始化) 对象已建立,尚未调用send方法
2 (发送数据) send方法已调用,但是当前的状态及http头未知
202 Accepted
203 Non-Authoritative Information
204 No Content
205 Reset Content
206 Partial Content
300 Multiple Choices
301 Moved Permanently
302 Found
303 See Other
406 Not Acceptable
407 Proxy Authentication Required
408 Request Timeout
409 Conflict
410 Gone
411 Length Required
412 Precondition Failed
413 Request Entity Too Large
3 (数据传送中) 已接收部分数据,因为响应及http头不全,这时通过responseBody和responseText获取部分数据会出现错误,

常见的XMLHttpRequest.status状态码

常见的XMLHttpRequest.status状态码

常见的XMLHttpRequest.status状态码XMLHttpRequest.status状态码1xx-信息提⽰这些状态代码表⽰临时的响应。

客户端在收到常规响应之前,应准备接收⼀个或多个1xx响应。

100-继续。

101-切换协议。

2xx-成功这类状态代码表明服务器成功地接受了客户端请求。

200-确定。

客户端请求已成功。

201-已创建。

202-已接受。

203-⾮权威性信息。

204-⽆内容。

205-重置内容。

206-部分内容。

3xx-重定向客户端浏览器必须采取更多操作来实现请求。

例如,浏览器可能不得不请求服务器上的不同的页⾯,或通过代理服务器重复该请求。

301-对象已永久移⾛,即永久重定向。

302-对象已临时移动。

304-未修改。

307-临时重定向。

4xx-客户端错误发⽣错误,客户端似乎有问题。

例如,客户端请求不存在的页⾯,客户端未提供有效的⾝份验证信息。

400-错误的请求。

401-访问被拒绝。

IIS定义了许多不同的401错误,它们指明更为具体的错误原因。

这些具体的错误代码在浏览器中显⽰,但不在IIS⽇志中显⽰:401.1-登录失败。

401.2-服务器配置导致登录失败。

401.3-由于ACL对资源的限制⽽未获得授权。

401.4-筛选器授权失败。

401.5-ISAPI/CGI应⽤程序授权失败。

401.7–访问被Web服务器上的URL授权策略拒绝。

这个错误代码为IIS6.0所专⽤。

403-禁⽌访问:IIS定义了许多不同的403错误,它们指明更为具体的错误原因:403.1-执⾏访问被禁⽌。

403.2-读访问被禁⽌。

403.3-写访问被禁⽌。

403.4-要求SSL。

403.5-要求SSL128。

403.6-IP地址被拒绝。

403.7-要求客户端证书。

403.8-站点访问被拒绝。

403.9-⽤户数过多。

403.10-配置⽆效。

403.11-密码更改。

403.12-拒绝访问映射表。

403.13-客户端证书被吊销。

vb-xmlhttp控件属性方法

vb-xmlhttp控件属性方法

xmlHttpRequest的status的值的含义虽然常写ajax方面的东西,但是很少去专门了解xmlHttpRequest的status各个值的含义,只是在用到时Google一下,下面将他人已总结过的转载一下,学习学习。

xmlHttpRequest对象的status代表当前http请求的状态,是一个长整型数据,现在介绍一下它的含义。

http请求状态及其含义表1xx - 信息提示100 - 初始的请求已经接受,客户应当继续发送请求的其余部分。

(HTTP 1.1新)101 - 服务器将遵从客户的请求转换到另外一种协议。

(HTTP 1.1新)2xx - 成功200 - OK 一切正常,对GET和POST请求的应答文档跟在后面。

201 - Created 服务器已经创建了文档,Location头给出了它的URL。

202 - Accepted 已经接受请求,但处理尚未完成。

203 - Non-Authoritative Information 文档已经正常地返回,但一些应答头可能不正确,因为使用的是文档的拷贝,非权威性信息(HTTP 1.1新)。

204 - No Content 没有新文档,浏览器应该继续显示原来的文档。

如果用户定期地刷新页面,而Servlet 可以确定用户文档足够新,这个状态代码是很有用的。

205 - Reset Content 没有新的内容,但浏览器应该重置它所显示的内容。

用来强制浏览器清除表单输入内容(HTTP 1.1新)。

206 - Partial Content 客户发送了一个带有Range头的GET请求,服务器完成了它(HTTP 1.1新)。

3xx - 重定向300 - Multiple Choices 客户请求的文档可以在多个位置找到,这些位置已经在返回的文档内列出。

如果服务器要提出优先选择,则应该在Location应答头指明。

301 - Moved Permanently 客户请求的文档在其他地方,新的URL在Location头中给出,浏览器应该自动地访问新的URL。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

AJAX中请求远端文件、或在检测远端文件是否掉链时,都需要了解到远端服务器反馈的状态以确定文件的存在与否。

当然,在我们平常浏览网页时,也会发现一些文件不存在时显示为“404错误”,这就是常见的Http请求状态(status)Web服务器响应浏览器或其他客户程序的请求时,其应答一般由以下几个部分组成:一个状态行,几个应答头,一个空行,内容文档。

下面是一个最简单的应答:状态行包含HTTP版本、状态代码、与状态代码对应的简短说明信息。

在大多数情况下,除了Content-Type之外的所有应答头都是可选的。

但Content-Type 是必需的,它描述的是后面文档的MIME类型。

虽然大多数应答都包含一个文档,但也有一些不包含,例如对HEAD请求的应答永远不会附带文档。

有许多状态代码实际上用来标识一次失败的请求,这些应答也不包含文档(或只包含一个简短的错误信息说明)。

当用户试图通过 HTTP 访问一台正在运行 Internet 信息服务 (IIS) 的服务器上的内容时,IIS 返回一个表示该请求的状态的数字代码。

状态代码可以指明具体请求是否已成功,还可以揭示请求失败的确切原因。

1xx - 信息提示这些状态代码表示临时的响应。

客户端在收到常规响应之前,应准备接收一个或多个 1xx 响应。

·0 - 本地响应成功。

· 100 - Continue 初始的请求已经接受,客户应当继续发送请求的其余部分。

(HTTP 1.1新)· 101 - Switching Protocols 服务器将遵从客户的请求转换到另外一种协议(HTTP 1.1新)2xx - 成功这类状态代码表明服务器成功地接受了客户端请求。

· 200 - OK 一切正常,对GET和POST请求的应答文档跟在后面。

· 201 - Created 服务器已经创建了文档,Location头给出了它的URL。

· 202 - Accepted 已经接受请求,但处理尚未完成。

· 203 - Non-Authoritative Information 文档已经正常地返回,但一些应答头可能不正确,因为使用的是文档的拷贝,非权威性信息(HTTP 1.1新)。

· 204 - No Content 没有新文档,浏览器应该继续显示原来的文档。

如果用户定期地刷新页面,而Servlet可以确定用户文档足够新,这个状态代码是很有用的。

· 205 - Reset Content 没有新的内容,但浏览器应该重置它所显示的内容。

用来强制浏览器清除表单输入内容(HTTP 1.1新)。

· 206 - Partial Content 客户发送了一个带有Range头的GET请求,服务器完成了它(HTTP 1.1新)。

3xx - 重定向客户端浏览器必须采取更多操作来实现请求。

例如,浏览器可能不得不请求服务器上的不同的页面,或通过<a id="vad_2"onmouseover="if(typeof(showTitle)!='undefined'){this.title='';window. clearTimeout(hideTO);showTitle(event, this, 2,'');}" title="网络游戏没攻略? @" style="font-size: 1em" onclick=""onmouseout="if(typeof(showTitle)!='undefined'){mouseIsOverLayer = false; mouseOverWhileLoad = false; hideTO =window.setTimeout('checkIfMouseOverLayer()',500);}"href="/click/click.php?ads_id=3503&site_id=62 35007045040803&click=1&url=http%3A//%7C%u73A9%u6E38%u620F% u641E%u4E0D%u5B9A%u653B%u7565%u600E%u4E48%u529E%uFF1F%3Bhttp%3A//pao. %7C%u8DD1%u8DD1%u5361%u4E01%u8F66%u624B%u628A%u624B%u6559%u4F6 0%u6F02%u79FB%u7EDD%u62DB%uFF01%3Bhttp%3A//%7C%u4F60%u7ED D%u5BF9%u6CA1%u770B%u8FC7%u8FD9%u4E48%u5F3A%u7684RO2%u6570%u636E%u5E9 3%uFF01%3Bhttp%3A//%7C%u4E3A%u4EC0%u4E48%u6BCF%u5929%u90FD% u6709%u8FD9%u4E48%u591A%u7537%u4EBA%u6765%u8FD9%u91CC%uFF1F%3Bhttp%3A //%7C%u73A9%u5F69%u8679%u5C9B%u6765%u8FD9%u91CC%u770B%u300 2%u8981%u4EC0%u4E48%u6709%u4EC0%u4E48%uFF01&v=0&k=%u4EE3%u7406&s=http %3A///html/79/t-13279.html&rn=942481" target="_blank">代理服务器重复该请求。

· 300 - Multiple Choices 客户请求的文档可以在多个位置找到,这些位置已经在返回的文档内列出。

如果服务器要提出优先选择,则应该在Location应答头指明。

· 301 - Moved Permanently 客户请求的文档在其他地方,新的URL在Location头中给出,浏览器应该自动地访问新的URL。

· 302 - Found 类似于301,但新的URL应该被视为临时性的替代,而不是永久性的。

注意,在HTTP1.0中对应的状态信息是“Moved Temporatily”。

出现该状态代码时,浏览器能够自动访问新的URL,因此它是一个很有用的状态代码。

注意这个状态代码有时候可以和301替换使用。

例如,如果浏览器错误地请求 http://host/~user (缺少了后面的斜杠),有的服务器返回301,有的则返回302。

严格地说,我们只能假定只有当原来的请求是GET时浏览器才会自动重定向。

请参见307。

· 303 - See Other 类似于301/302,不同之处在于,如果原来的请求是POST,Location头指定的重定向目标文档应该通过GET提取(HTTP 1.1新)。

· 304 - Not Modified 客户端有缓冲的文档并发出了一个条件性的请求(一般是提供If-Modified-Since头表示客户只想比指定日期更新的文档)。

服务器告诉客户,原来缓冲的文档还可以继续使用。

· 305 - Use Proxy 客户请求的文档应该通过Location头所指明的代理服务器提取(HTTP 1.1新)。

· 307 - Temporary Redirect 和302(Found)相同。

许多浏览器会错误地响应302应答进行重定向,即使原来的请求是POST,即使它实际上只能在POST 请求的应答是303时才能重定向。

由于这个原因,HTTP 1.1新增了307,以便更加清除地区分几个状态代码:当出现303应答时,浏览器可以跟随重定向的GET 和POST请求;如果是307应答,则浏览器只能跟随对GET请求的重定向。

(HTTP 1.1新)4xx - 客户端错误发生错误,客户端似乎有问题。

例如,客户端请求不存在的页面,客户端未提供有效的身份验证信息。

· 400 - Bad Request 请求出现语法错误。

· 401 - Unauthorized 访问被拒绝,客户试图未经授权访问受密码保护的页面。

应答中会包含一个WWW-Authenticate头,浏览器据此显示用户名字/密码对话框,然后在填写合适的Authorization头后再次发出请求。

IIS 定义了许多不同的 401 错误,它们指明更为具体的错误原因。

这些具体的错误代码在浏览器中显示,但不在 IIS 日志中显示:· 401.1 - 登录失败。

· 401.2 - 服务器配置导致登录失败。

· 401.3 - 由于 ACL 对资源的限制而未获得授权。

· 401.4 - 筛选器授权失败。

· 401.5 - ISAPI/CGI 应用程序授权失败。

· 401.7 –访问被 Web 服务器上的 URL 授权策略拒绝。

这个错误代码为IIS 6.0 所专用。

· 403 - Forbidden 资源不可用。

服务器理解客户的请求,但拒绝处理它。

通常由于服务器上文件或目录的权限设置导致。

禁止访问:IIS 定义了许多不同的 403 错误,它们指明更为具体的错误原因:· 403.1 - 执行访问被禁止。

· 403.2 - 读访问被禁止。

· 403.3 - 写访问被禁止。

· 403.4 - 要求 SSL。

· 403.5 - 要求 SSL 128。

· 403.6 - IP 地址被拒绝。

· 403.7 - 要求客户端证书。

· 403.8 - 站点访问被拒绝。

· 403.9 - 用户数过多。

· 403.10 - 配置无效。

· 403.11 - 密码更改。

· 403.12 - 拒绝访问映射表。

· 403.13 - 客户端证书被吊销。

· 403.14 - 拒绝目录列表。

· 403.15 - 超出客户端访问许可。

· 403.16 - 客户端证书不受信任或无效。

· 403.17 - 客户端证书已过期或尚未生效。

· 403.18 - 在当前的应用程序池中不能执行所请求的 URL。

这个错误代码为IIS 6.0 所专用。

· 403.19 - 不能为这个应用程序池中的客户端执行 CGI。

相关文档
最新文档