xmlhttp对象属性和方法_javascript

本文深入探讨了XMLHttpRequest的基本概念、属性、方法及其在实际应用中的操作技巧,包括如何创建、发送请求、处理响应以及关键注意事项。通过具体实例演示,帮助开发者熟练掌握XMLHttpRequest的使用,提升Web开发技能。

xmlhttp

/*

 * By:D.n.sky Xml Http
   Xml Http是通过http协议传送或接收XML及其他数据的一套API
   IE中使用ActiveXObject方法创建 Xml Http对象, FireFoxOpera等通过window.XMLHttpRequest来创建 Xml Http
 */
 
 
/*
 *  Xml Http 对象属性 '*' 表示此属性是W3C文档对象模型的扩展
   ------------------------------------------------------
    1.onreadystatechange * -w 指定当readyState属性改变时的事件处理句柄
    2.readyState -r 返回当前请求的状态
           -----------------------------------
           0 未初始化 对象已建立,但是尚未初始化(尚未调用open方法)
           1 初始化 对象已建立,尚未调用send方法
           2 发送数据 send方法已调用,但是当前的状态及http头未知
           3 数据传输中 已接收部分数据,因为响应及http头不全,这时通过responseBody和responseText获取的部分数据会出错
           4 完成 数据接收完毕,此时通过responseBody和responseText获取完整的回应数据
   3.responseBody -r 将回应信息正文以unsigned byte数组的形式返回
   4.responseStreatm -r 以Ado Stream对象的形式返回响应信息
   5.responseText -r 将响应作为字符串返回
     XMLHTTP尝试将响应信息解码为Unicode字符串,XMLHTTP默认将响应数据的编码定为UTF-8,如果服务器返回的数据带BOM(byte-order mark),XMLHTTP可以解码任何UCS-2 (big or little endian)或者UCS-4 数据。
   6.responseXML -r 将响应信息格式化为Xml Document对象并返回
   7.statusText -r 返回当前请求的响应行状态
   8.status -r 返回当前请求的http状态码
           -----------------------------------
           Number  Description 
           --信息-----------------
           100 Continue 服务器仅接收部分请求,但是一旦服务器并没有拒绝该请求,客户端应该继续发送其余请求
           101 Switching protocols 服务器转换协议:服务器将遵循从客户的请求转换到另一种协议
           --成功-----------------
           200 OK 请求成功(其后是对GET和POST请求的应答文档)
           201 Created 请求被创建完成,同时新的资源被创建
           202 Accepted 供处理的请求已被接受,但是处理未完成
           203 Non-Authoritative Information 文档已经正常的返回,但是一些应答头可能不正确,因为使用的是文档的拷贝
           204 No Content     没有新文档。浏览器应该继续显示原来的文档。如果用户定期地刷新页面,而Servlet可以确定用户文档足够新,这个状态代码是很有用的
           205 Reset Content 没有新文档。但浏览器应该重置它所显示的内容。用来强制浏览器清除表单输入内容
           206 Partial Content     客户发送了一个带有Range头的GET请求,服务器完成了它
           --重定向------------
           300 Multiple Choices 多重选择。链接列表。用户可以选择某链接到达目的地。最多允许五个地址
           301 Moved Permanently 所请求的页面已经转移至新的url
           302 Found 所请求的页面已经临时转移至新的url
           303 See Other 所请求的页面可在别的url下被找到
           304 Not Modified 未按预期修改文档。客户端有缓冲的文档并发出了一个条件性的请求(一般是提供If-Modified-Since头表示客户只想比指定日期更新的文档)。服务器告诉客户,原来缓冲的文档还可以继续使用
           305 Use Proxy 客户请求的文档应该通过Location头所指明的代理服务器提取
           307 Temporary Redirect 被请求的页面已经临时移至新的url
           --客户端错误----------------
           400 Bad Request 服务器未能理解请求
           401 Unauthorized 被请求的页面需要用户名和密码
           402 Payment Required 此代码尚无法使用
           403 Forbidden 对被请求页面的访问被禁止
           404 Not Found 服务器无法找到被请求的页面
           405 Method Not Allowed 请求中指定的方法不被允许
           406 Not Acceptable 服务器生成的响应无法被客户端所接受
           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 由于url太长,服务器不会接受请求。当post请求被转换为带有很长的查询信息的get请求时,就会发生这种情况
           415 Unsupported Media Type 由于媒介类型不被支持,服务器不会接受请求
           416 Requested Range Not Suitable 服务器不能满足客户在请求中指定的Range头
           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协议版本
           --------------------------------------------
   ------------------------------------------------------
   方法
   ------------------------------------------------------
   open 创建一个新的http请求,并指定此请求的方法,URL以及验证信息(用户名/密码)
   send 发送请求到http服务器并接受回应
   abort 取消当前请求
   setRequestHeader 单独的指定请求的某个http头
   getAllResponseHeaders 获取响应的所有http头
   getResponseHeader 从响应信息中获取指定的http头
 */
 
/* 方法详细
 * 1.xmlhttp.open(
       Mpyhod, -> http方法,GET,POST,PUT,PROPFIND,不区分大小写
       URL, -> 请求URL的地址,绝对/相对地址
       Async, -> [可选] boolean,指定请求是否是异步方式,默认true,当状态改变时会调用onreadystatechange属性指定的回调函数。
       User, -> [可选] 服务器需要验证用户名
       Password -> [可选] 服务器需要验证的密码
   )
    2.send()
    说明:方法中的同步/异步取决于open的Async
    ---Async--------------------------------—
    false 等待请求完成或者超时才返回
    true 立即返回
    ---数据—----------------------------------
    BSTR 回应呗编码为utf-8,必须在适当的位置设置一个包含charset的文档类型头
    XML DOM Object 则回应将被编码为在xml文档中声明的编码,如果xml中未声明,则使用默认utf-8
    3.getAllResponseHeaders()
    http头名称/值用':'分割,以\r\n结束,当send方法完成后才可调用
    4.getResponseHeader(header) 当send方法完成后才可调用
    5.setRequestHeader(header, value ) 在open方法后调用
    6.abort()
    当前请求返回 UNINITIALIZED 状态
   
 */

推荐博文:

转载于:https://my.oschina.net/desetang/blog/69855

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值