详解XMLHttpRequest对象

来源:互联网 发布:邮件转存软件 编辑:程序博客网 时间:2024/06/06 00:02

    最近在学Ajax,说到Ajax不得不提到其中最重要的对象XMLHttpRequest对象,本文就此对象着重介绍一下,为学习后继Ajax的学习做铺垫。

    XMLHttpRequest对象的主要作用是和服务端做数据交互,区别在于,它可以在页面加载完毕后向服务端发送请求和接受服务端数据,达到常见的不刷新页面情况下更新页面数据。

XMLHttpRequest属性

    readyState

    当一个XMLHttpRequest被初次创建时,这个属性的值从0开始逐步增长到4,共五个状态,也反映了HTTP请求状态逐步完善的过程。

  • 0,表示XMLHttpRequest已被创建或被abort()方法重置。
  • 1,open()方法已调用,但是请求未被发送。
  • 2,Send()方法已调用,请求已发送,但未收到响应。
  • 3,响应头接收到,但响应具体内容尚未完成接收。
  • 4,HTTP响应已经完成。
    这个属性在Ajax中经常结合status属性使用,用于判断当前响应状态,在不被打断的情况下,readyState的值是依次递增的,并且每次readyState改变都会引起onreadystatechange事件发生(如果已定义),经测试这个在IE中逐步调试可以很明显看出,但是在chrome浏览器中,只有逐过程调试看不到触发走向。

    responseText和responseXML

       responseText,用于接收服务端的响应的文本信息,不包含头部数据,默认采用UTF-8编码。从上个属性中也可以推断,只有在readyState为3或4的情况下此属性才有数据。responseXML和responseText的区别在于,responseXML返回的XML数据。

       status和statusText

       status属性是由服务端返回的状态属性,例如:成功为200,未发现 错误为404;statusText表示相同的含义,只是采用的是字符串表示,例如成功则是“OK”,未发现错误为“Not Found”。

XMLHttpRequest方法
       abort()
       让XMLHttpRequest恢复到未初始化状态,在需要中断连接和响应时,可以调用此方法。
       getAllResponseHeaders()
  它返回服务器发送的所有 HTTP 响应头信息,包括:Content-Lengh,Date,和URI等内容,以字符串返回,每一个键名和键值用冒号分开,每组键之间用回车和换行符( \r\n)分开。
       getResponseHeader()
  返回指定的 HTTP 响应头部的值,如果接收到多个有指定名称的头部,这个头部的值被连接起来并返回,使用逗号和空格分隔开各个头部的值。
       open()
  open(method,url,async,username;password)方法最多有5个参数,分别为:调用方式"GET"或"POST";服务器地址URL;是否异步传送;用户名;密码,最后两个参数在需要认证时使用。该方法的作用是制定和服务器交互的方法、地址和请求信息。
       send(content)
  发送 HTTP 请求,如果是异步方式,则该方法会立即返回。可以不用发送内容,则content为null;也可以发送DOM或是字符串。
       setRequestHeader(header,value)
  设置HTTP请求中header的值为value,此方法在open()后使用
XMLHttpRequest事件
       XMLHttpRequest还有一个事件句柄onreadystatechange,赋给这个句柄一个函数,即我们常说的回调函数,服务器返回数据并满足条件时,可以用来更新页面数据。

       说了这么多,如何使用?将在下一篇博客中介绍。

原创粉丝点击