Ajax中XMLHttpRequest对象的ReadyState属性值列表
readystate取值 描述
status属性:这个status属性描述了http状态代码,而且其类型为short。而且,仅当readystate值为3(正在接收中)或4(已加载)时,这个status属性才可用。当readystate的值小于3时试图存取status的值将引发一个异常。 responsetext属性:这个responsetext属性包含客户端接收到的http响应的文本内 容。当readystate值为0、1或2时,responsetext包含一个空字符串。当readystate值为3(正在接收)时,响应中包含客户 端还未完成的响应信息。当readystate为4(已加载)时,该responsetext包含完整的响应信息。 statustext属性:这个statustext属性描述了http状态代码文本;并且仅当readystate值为3或4才可用。当readystate为其它值时试图存取statustext属性将引发一个异常。 这个就解决了我当时的疑问:为什么xmlhttp.readystate==4一定要是4呢,是1000不行么,这就告诉我,不行!。 问题2:至于那个status==200,这里有个解释:ajax中,xmlhttprequest对象的status属性一般用来返回服务器的http状态码。status为200表示“成功”,status为404代表“页面未找到”。 很多书上都是这样写的,一点也不错。但是,有时候,特别是刚开始学ajax的时候,可能会将代码直接在本地运行。这样就出现问题了。如果在本地运行 (c:ajax helloworld.htm),那么status属性不管是在“成功”还是“页面未找到”的情况下,都返回的是0,而不是200和404。这个时候如果 还 用if(xmlhttp.status==200)来判断运行,则会毫无结果。所以如果要在本地测试,最好写成if(xmlhttp.status== 200 || xmlhttp.status==0)的形式来判断。 这里有几个参数 xmlhttprequest对象的status属性的取值长整形标准http状态码,定义如下:
发送一个请求后,客户端无法确定什么时候会完成这个请求,所以需要用事件机制来捕获请求的状态,xmlhttprequest对象提供了onreadystatechange事件实现这一功能。这类似于回调函数的做法。 onreadystatechange事件是在readystate属性发生改变时触发的,readystate的值表示了当前请求的状态,在事件处理程序中可以根据这个值来进行不同的处理。 readystate有五种可取值0:尚未初始化,1:正在加载,2:加载完毕,3:正在处理;4:处理完毕。一旦readystate属性的值变成了4,就可以从服务器返回的响应数据进行访问了。 通常在事件中判断readystate的值是在请求完毕时才做处理,如: function changetabcallback(){ if(ajaxobj.readystate==4){ // 下一步验证 } } status存储了服务器端返回的http请求响应代码,它表示请求的处理结果,常见响应代码的含义如右。 在ajax开发中,最常用就是200这个响应码,代码如下: function changetabcallback(){ if(ajaxobj.readystate==4){ if(ajaxobj.status==200){ // 服务端返回了正确数据,开始响应处理 } } } http状态码 含义 200 请求成功 202 请求被接受但处理未完成 400 错误请求 404 请求资源未找到 500 内部服务器错误 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |