XMLHttpRequest对象_Ajax异步请求重点(推荐)
一、xmlhttprequest对象
1.ajax能够是实现异步传输,所依赖的就是javascript中的xmlhttprequest
2.xmlhttprequest对象是xmlhttp组件的对象,它是一个抽象对象,允许脚本从服务器获取返回的exml数据或将数据发送到服务器端
3.xmlhttprequest可以实现客户端与服务器只进行数据层面的交互,不必每次刷新页面
4.xmlhttprequest最早在microsoft internet explorer5.0中作为一个activex控件提供,后受到广泛应用
5.在使用xmlhttprequest发送请求和处理相应之前需要先创建一个xmlhttprequest对象
6.xmlhttprequest不是w3c标准,可采用多种方法用javascript来创建xmlhttprequest实例
7.在ie中xmlhttprequest实现为一个activex控件,而其他浏览器则实现为一个javascript内置对象
二、xmlhttprequest对象创建
<script type="text/javascript">
三、xmlhttprequest对象属性(接收并显示当前状态)
1.readysate-记录返回请求的状态
。0-为初始化:对象已经建立,单位初始化,open方法还未调用;
。1-初始化:对象已经建立,但还未调用send方法发送请求;
。2-发送数据:send方法已调用,但http头未知;
。3-数据传输中:已经接受部分数据,但响应不完全;
。4-完成:数据接受完成,此时才可以获取完整的返回数据
2.responsetext-接收客户端的http响应的文本内容
。只读
。当readysate为1/2,responsetext值是一个空字符串;
。当readystate为3,响应信息正在接受还未完成;
。当readystate为4,表示可以响应信息已经接收完成
。xmlhttp默认响应数据编码为utf-8
3.responsexml-在send()执行后,将返回的信息格式化为xml document对象
。content-type指定的mime类型应该为text/html
。如果content-type不包含这种类型,responsexml在接收时将会得到一个null值
4.status-在send()执行后,可使用status读取事物状态
。长整型数据
。返回当前请求的http的状态码
。只有当readystate为3或4时才使用该属性,否则读取status会发生错误
。100-客户必须继续发送请求
。200-交易成功
。400-错误请求
。403-请求不允许
。404-没有发现文件、查询、url
。500-服务器内部错误
。502服务器暂时不可使用
。505-服务器不支持或拒绝不支持请求头中的http版本
5.statustext-send()执行后,可通过statustext读取事物状态
。返回当前http请求的状态行
。只有当readystate为3或4时才可使用该属性,否则读取state会发生错误
6.onreadystatechange-readystate发生变化时所要执行的操作
。通常将处理函数名称赋予onreadystatechange来为xmlhttprequest对象指定事件处理
。在事件处理函数中根据readystate的状态值进行相应的处理
。例:
function test(){ xmlhttp.onreadystatechange=showinfo; var url=”/ajax/urlinfo”;//请求路径 xmlhttp.open(“get”,url,true); xmlhttp.send(null); } function showinfo(){ if(xmlhttp.readystate==4){ alert(“success”); } }
四、xmlhttprequest对象方法(动态处理各种信息:数据的发送和接收、请求与响应的处理等)
1.abort()-终止当前操作
。停止xmlhttprequest对象对http的请求,把该对象恢复到初始状态
2.open()-xmlhttp.open(method,url,mode,user,pwd)
。创建一个新的http请求,并指定该请求的方法、url、验证信息等
。method:post、get、put(可忽略大小写)
。url:请求的目标地址
。mode:指定请求是否为异步,默认true;当为true时,当state的状态改变时会调用onreadystatechange属性所指定的处理函数
。调用open()后,xmlhttprequest对象将readystate属性设为1并恢复responsetext、responsexml、status、statustext等属性的初始值,并且复位请求头部信息
调用open()时,readystate为4,则xmlhttprequest对象将复位以上的值
3.send()-xmlhttp.send(content)
。发送请求到服务器并接受回应
4.setrequestheader()-setrequestheader(header,value)
。单独设定某个请求的http头信息
。当readystate为1时,可在send()后调用此方法,否则返回一个异常
。如果已经存在该名称的http头,则将原来信息覆盖
。header-头名称:字符串型
。value-头名称的值:字符串型
5.getresponseheader()-读取服务器发出信息的头部
。head请求忽略内容,所以其响应比对get或post响应小
获取内容:
。content-type:内容类型
。content-length:内容长度
。last-modify:最后一次修改的日期
。例:
function getheadinfo(){ if(xmlhttp.readystate==4){ if(headeytype==”content-type”){ window.alert(“content-type:”+xmlhttp.getresponseheader(“content-type”); } else if(headtype==”content-length”){ window.alert(“content-length:”+xmlhttp,getresponseheader(“content-length”); } else if(headtype==”last-modify”){ window.alert(“last-modify:”+xmlhttp.getresponseheader); } } }
。在获取头部信息时,并不是所有信息都能获取
6.getallresponseheaders()-获取所有头部信息
。在获取时只用head即可获取
。例:
fuction headrequest(){ creatxmlhttprequest(); xmlhttp.onreadystatechange=getheadinfo; xmlhttp.open(“head”,”url”,false); xmlhttp.send(null); } function getheadinfo(){ if(readystate==4){ alter(xmlhttp.getallresponseheaders()); }
以上这篇xmlhttprequest对象_ajax异步请求重点(推荐)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
推荐阅读
-
XMLHTTPRequest对象来进行AJAX的异步数据交互
-
ajax异步请求 后台用Spring的@RequestBody接受java对象
-
Ajax异步XMLHttpRequest对象
-
原生Ajax的使用(创建XMLHttpRequest对象、发送请求、GET 还是 POST、异步还是同步、处理后台返回的数据)
-
XMLHttpRequest对象_Ajax异步请求重点(推荐)
-
AJAX中同时发送多个请求XMLHttpRequest对象处理方法
-
javascript对XMLHttpRequest异步请求的面向对象封装
-
javascript对XMLHttpRequest异步请求的面向对象封装
-
Jquery Ajax学习实例4 向WebService发出请求,返回实体对象的异步调用_jquery
-
Jquery Ajax学习实例4 向WebService发出请求,返回实体对象的异步调用_jquery