AJAX四个步骤
1.创建核心对象
2.准备发送
3.执行发送
4.回调函数
<script>
//兼容性问题
var xhr = null;
if (window.XMLHttpRequest) {
xhr = new XMLHttpRequest();
} else {
xhr = new ActiveXObject("Microsoft.XMLHttpRequest");
}
//准备发送
xhr.open("get","data.php",true);
//执行发宋
//post请求 send传参数
xhr.send(null);
xhr.onreadystatechange = function() {
if (xhr.readyState == 4 && xhr.status == 200) {
/* readyState
0 创建对象成功
1 连接已经建立
2 浏览器已经接受到服务器发送的数据
3 解析数据
4 解析完成 数据可以使用
status
2XX 成功
3XX 转发重定向
4XX 找不到资源
5XX 服务器端发生错误
*/
var data = xhr.responseText;
if (data) {
//...
}
}
}
</script>
XMLHttpRequest是Ajax技术的核心对象
readyState 表示一种状态
Onreadystatechange每次状态改变所触发事件的事件处理程序
ResponseText从服务器进程返回的数据的字符串形式
ResponseXML从服务器进程返回的XML文档数据对象
Status从服务器返回的数字代码 404或200
StatusText 伴随状态码的字符串信息
ReadyState
01234 取值
未初始化,发送,发送,正在接受,已加载
Onreadystatechange 通常只需在readystate等于4时做数据的获取和处理工作
ResponseText
属性:
当readystate值为012,responseText包含一个空字符串
当readyState值为3,正接收,响应中包含客户端还未完成的响应信息
当readystate值为4,已加载,包含完整的响应信息,
ResponseXML
属性用于当接收到完整的HTTP响应时,readystate 为4
描述XML响应。
此时content-type头部指定MIME类型为text/xml,application/xml或以xml结尾
如果不包含这些媒体类型之一 值为null
如果readystate不为4 值为null,是只是一个文档接口类型的对象
如果文档不是良构,或不支持文档相应的字符编码,ResponseXML的值为将为null
Status
属性
描述了HTTP状态码
类型为short
仅当readystate为3或者4时,属性才可用
当readystate小于3时,试图存取status的值将发生一个异常
常用的HTTP状态码
200请求成功
202请求被接受但处理未完成
400错误请求
404请求资源未找到
500内部服务器错误
可根据status获取的状态码对响应结果进行有针对性的处理
Statustext
属性
描述了HTTP状态码文本
并且仅当readystate为3或4时,才可以使用,当readystate为其他值时,试图存取将引发一个异常