Ajax称为异步JavaScript和xml (Asynchronous JavaScript and XML)
快速创建动态网页的一种技术, 通过在后台与服务器进行少量的数据交换, 可以实现网页异步更新(不重新加载网页而局部修改网页) 相当于在客户端和服务端加了一个中间层
所使用的技术:xhtml、css、使用DOM实现动态显示与交互、使用xml或json和XSLT进行数据交换与处理、使用XMLHttpRequest进行异步数据读取、用JavaScript绑定和处理所有数据
使用XMLHttpRequest对象实现异步交互
创建XMLHttpRequest对象
var xmlHttp;
function createXHR() {
if(window.ActiveXObject){
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); //ie7以下
}else{
xmlHttp = new XMLHttpRequest();
}
}
准备请求方式
xhr.open(method, url, asynchronous);
method: get与post
url:请求地址, 可以使相对地址也可以是绝对地址
asynchronous: true为异步(默认), false同步
设置请求头
不同的浏览器发送的请求头不同但基本头都会发送, 如Accept, Accept-Charset等,我们也可以设置自定义头信息发送给服务端, 方法如下:xhr.setRequestHeader(key, value);
发送get请求 send参数为null
发送post请求
xhr.open("post", url); xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");xhr.send(querystr);
注册回调事件处理函数
当XMLHttpRequest对象的readyState属性值发生改变时,会激发一个readystatechange事件,我们可以使用onreadystatechange属性来注册该回调事件处理函数
xhr.onreadystatechange=函数
readyState属性值如下:
0:未初始化 尚未调用open方法
1:启动 已调用open方法 但未接收到响应
2:发送 已调用send方法 但未接收到响应
3:接受 已接受部分数据
4:完成 已接受全部数据
处理服务端响应的内容
在收到服务端响应后,相应的数据会自动填充到XHR对象的属性中,常用属性如下:
reponseText 作为响应主体被返回的文本
responeXML 如果服务端响应的内容类型为text/xml或aplication/xml那么就返回包含xml内容否则返回null
status 响应http状态, 200代表响应成功
statusText http状态说明