当前位置: 移动技术网 > IT编程>开发语言>JavaScript > XMLHttpRequest对象_Ajax异步请求重点(推荐)

XMLHttpRequest对象_Ajax异步请求重点(推荐)

2017年12月12日  | 移动技术网IT编程  | 我要评论

一、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异步请求重点(推荐)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持移动技术网。

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网