原生 ajax 的应用(客户端的代码说明)
在网页中使用原生的ajax,首先第一步需要创建XMLHttprequest。创建的方式如下:
var request; if(window.XMLHttpRequest){ request = new XMLHttpRequest(); //ie7+,Fiefox,Chrome,Oprea,Safari }else{ request = new ActiveXObject("Microsoft.XMLHTTP"); //ie6,ie5 这样主要为了兼容性考虑 }
第二部:请求
XMlHttpRequest 发送请求分为两步(两个方法)
open(method,url,async)
1,get或者post 2,url地址 3,同步还是异步 异步为true,同步为false,默认为true,可以不填写
send(String)
这个方法中send 中的string字符串可以为空。如果open()方法中为get时,则不填写。如果为post的可以填写参数。
下面几个例子
1, request.open("get","get.php",true); request.send(); 2, request.open("post","post.php",true); request.send(); 3, request.open("post","create.php",true); request.setRequestHeader("Content-type","application/x-www.form-urlencoded"); request.send("name=张三&sex=男");
第三步: Xmlhttprequest 取得响应
大致有一下这些方法:
responseText :获取字符串形式的响应数据
responseXML :获取xml形式的响应数据
status 和 statusText :以数字和文本形式返回HTTP状态吗
getAllResponseHeader():获取所有的响应报头
getResponseHeader() : 查询响应中的某个字段的值
readyState是XMLHttpRequest对象的一个属性,用来标识当前XMLHttpRequest对象处于什么状态。
status是XMLHttpRequest对象的一个属性,表示响应的HTTP状态码。
获取readyState属性,获取状态,判断响应是否完成。
0:请求未初始化,open还没有调用
1:服务器连接已经建立,open已经调用。
2:请求已接收,也就是接收到头信息了
3:请求处理中,也就是接收到响应主体了。
4:请求已完成,且响应也已就绪,也就是响应完成了。
通过onreadystatechange 来监听XMLHttprequest 的 readyState 属性的值:
例子:
request.open("get","get.php",true); request.send(); request.onreadystatechange = function(){ if(request.readyState == 4 && request.status == 200){ //业务处理代码
//request.responseText :获取字符串形式的响应数据
//request.responseXML :获取xml形式的响应数据
} }