当前位置:编程学习 > XML/UML >>

ajax的xmlHttpRequest对象

 XMLHttpRequest对象是ajax的核心,它有许多属性,方法和事件以便于脚本的处理和控制http的请求响应。如果你一直在使用原生的javascript做开发,那么在使用ajax的过程中,这个对象你需要非常了解,假使你用jquery之类的封装框架的话,那么多对它有一份了解,也能加深你对ajax的理解。
 
            下面是它的一些属性的介绍:
             1.readState属性:当xmlHttpRequest对象被创建后,这个属性,会告诉你,核心对象被创建后,是处于何种状态,是否可以访问或者处理,readState可以等于0,1,2,3,4;分别表示,0:已创建对象,但未初始化(如:int i;),1:已调用对象的open()方法,准备发送请求,2:已调用send()方法去请求,但是未得到响应,3:正在响应 ,4:完成响应,完成httpResponse响应的接收。
             2.responseText属性:包含了客户端接收到的来自http响应的文本内容。当readState为0,或1或2时,该属性是一个空字符串,当为3时,是部分已接收到的字符串,当为4时,该属性为完整的响应信息。
             3.responseXml属性:只有当readyState=4且响应头部的Content-Type的类型指定为XML(text/xml或者application/xml)时,该属性的值才为一个xml文档,否则为null,假使回传的xml格式不良或者未完成响应回传,该属性值也为null。它被用来描述xmlHttpRequest对象解析xml文档后的属性。
             4.status属性:标记了http状态代码。只有在readyState=3或者4时,这个属性才能进行访问,否则获取该属性时,将引发异常。
             5.statusText属性:标记了http状态代码的文本。只有在readyState=3或者4时,这个属性才能进行访问,否则获取该属性时,将引发异常。
 
 
           下面是它的一个事件介绍:onreadystatechange事件
            每当readyState的属性发生改变,就会触发该事件, 为ajax请求中使用最为频繁的核心事件。
 
           下面是一些方法的介绍:
            1.open():xmlHttpRequest对象通过调用open(method,uri,async,username,password)方法,进行初始化工作。调用该方法后,返回一个可以进行发送(send()方法)的对象。method为必填参数,按照http规范,可以为GET,POST,PUT,DELETE和HEAD;uri用于指定xmlHttpRequest对象请求的服务器地址,可以为相对路径或者绝对路径,最终都将解析为绝对路径;async用于指定是否异步,默认为true;如果服务器需要验证访问用户,那么username和password的这两个参数即可以使用到。
             2.send():send()方法将open()方法中的参数进行请求发送,即它只能在open()调用之后,才能调用,即readState=1之后才能调用send(),在send()接受到响应信息之前,readyState=2,一旦send()接受到响应信息,readyState=3,直到最后接受完成,readyState=4。send方法使用也贵可选的参数,该参数可以包含可变类型的数据。对于大。多数的其它的数据类型,在调用send()之前,应该使用setRequestHeader()设置Content-Type 。一般使用send(null)显示调用该方法,假使send(data)中的data类型是DOMString,数据被编辑为utf-8,如果是Document,则由
data.xmlEncoding指定的编码串行化该数据。
         3.about():可以暂停一个httpRequest的请求发送或者接收,并且将xmlHttpRequest对象设置为初始化状态。
           4.setRequestHeader():设置请求的头部信息,当readyState=1时,可以在调用open()后调用它,否则会得到异常。
.          5.setResponseHeader():用于检索响应头信息,当readyState=4或者3时,才可以调用,否则得到一个空字符串。此外,getAllResponseHeader()用于获得所有的httpResponse的头部信息。
补充:web前端 , JavaScript ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,