XMLHttpRequest小结

 

先来看看XMLHttpRequest的属性:

  • readyState
    用数字对应XMLHttpRequest处理Http请求响应的各个过程:
    • 0——未初始化状态:已创建XMLHttpRequest对象,但还未初始化。
    • 1——准备发送状态:已调用了XMLHttpRequest.open()方法,准备调用XMLHttpRequest.send()方法。
    • 2——发送状态:已经通过XMLHttpRequest.send()将请求发送至服务器端,但还未收到响应。
    • 3——正在接收状态:已收到Http响应头部信息,但消息体部分还未接收完。
    • 4——加载完毕状态:响应已被完全接收。
  • responseText
    Http响应的文本内容:当readyState为0、1、2时,responseText为一空字符串;当readyState为3或4时,responseText为已收到的响应文本。
  • responseXML
    Http响应的XML树。当readyState不为4,或者响应的Content-Type指定的MIME类型不是text/xml、application/xml等时,responseXML为null。
  • status
    Http状态代码。例如,404=文件未找到,200=成功等。
  • statusText
    Http状态文本。例如,status为200时对应”OK”。
  • multipart
    一个bool值,ms跟MIME类型multipart/form-data有关,具体还没搞清楚-_-!请教高手……

再看看XMLHttpRequest的事件。平时主要用到的事件就是onreadystatechange,当readyState属性发生变化的时候会触发。另外还有一些不长用到的事件:onerror、onload、onprogress。

最后是XMLHttpRequest的方法。常用的是这几个:

  • abort()
    中断XMLHttpRequest请求响应过程,调用后readyState将变为0。
  • open(string method,string uri,boolean async,string username,string password)
    初始化XMLHttpRequest请求响应过程。注意用户名和密码在与需要认证的服务器通信时才会使用到。
  • send(data)
    将请求发送至服务器。使用“GET”方式时data应设为null,或不传参数。
  • setRequestHeader(string header,string value)
    设置请求的头部信息。在调用open()方法后才能调用该方法,否则会出现一个异常。
  • 其他方法还有:getResponseHeader()、getAllResponseHeaders()、getInterface()、overrideMimeType()等。

另外如果服务器端是asp.net,应将请求发送至一个空的aspx页面,否则响应会包含页面的所有内容。这个问题曾经郁闷我很久- -!

原文地址:https://www.cnblogs.com/engine1984/p/862952.html