AJAX 不是新的编程语言,而是一种使用现有标准的新方法。
AJAX 最大的优点是在不重新加载整个页面的情况下,可以与服务器交换数据并更新部分网页内容。
AJAX 不需要任何浏览器插件,但需要用户允许JavaScript在浏览器上执行
javaScript中的ajax的基本使用步骤
//1.创建XMLHttpRequest对象,但是老版本IE(IE5和IE6)则要使用 ActiveX 对象,new ActiveXObject("Microsoft.XMLHTTP");
//结合起来的兼容写法
var xhr = window.XMLHttpRequest?new XMLHttpRequest():new ActiveXObject("Microsoft.XMLHTTP");
//2.建立连接桥
xhr.open(method,url,async);
<!--method:请求类型,get或post
url:请求地址
async:是否异步,默认异步(true),同步(false)-->
//3.发送请求
xhr.send(data);
<!--data:请求体,仅用于post方法-->
//4.监听状态改变
xhr.onreadystatechange = function(){
var readyState = this.readyState;
<!--readyState有五个状态:
0:初始化,请求代理对象
1:open方法已经调用,建立一个与服务端特定端口的连接
2:发送请求,已经接受到了响应报文的响应头,但还没有拿到响应体,即数据
3:正在接收响应体,有可能响应体为空,也有可能不完整,在这处理数据不保险
4:响应体接收完成-->
//5.处理从服务器接收到的数据,一般是readyState == 4时,进行处理
if(readyState != 4) return;
// do something
}
在h5提供了一个方法,onload(),XMLHttpRequest v2.0 定义的,即表示响应体已经接受完毕
xhr.onload(function(){
//do something
});
XMLHttpRequest对象中一些重要的属性:
xhr.setRequestHeader('Accept','text/plain'):设置请求头
xhr.status:服务器返回的响应状态码,如200,,404......
xhr.statusText:获取响应状态描述
xhr.getResponseHeader('Content‐Type'):获取指定的响应头信息
xhr.getAllResponseHeader():获取全部的响应头信息
xhr..responseText:获取数据,文本形式
提示:如果接收到json的文本,可以使用Json。parse(text)转化成json数组
xhr.response:获取到的结果会根据xhr.responseType的变化而变化
提示:xhr.responseType是需要我们自己在客户端设置的,且xhr.response有兼容性,IE10以上才能用
xhr.responseXML:获取XML格式的数据,现在一般不使用了