/**
* 用原生JS实现AJAX,并封装
* @param url 向服务器请求需要读取的文件名
* @param responseHandler 用来处理请求成功返回的文本responseText的一个函数
*/
function ajax (url,responseHandler) {
//
1、创建ajax对象
var xhr;
if (window.XMLHttpRequest) { //非IE6浏览器,是IE7及以上
xhr = new XMLHttpRequest();
}else{ //如果没有XMLHttpRequest,说明就是IE6浏览器
xhr = new ActiveXObject("Microsoft.XMLHTTP"); //参数Microsoft.XMLHTTP 不区分大小写,写成microsoft.xmlhttp 也是可以的。不过按照习惯还是写成 Microsoft.XMLHTTP
}
//
2、连接服务器
//open(方法,文件名,异步传输)
//方法
//传输方式是get方式还是post方式。
//文件名
//告诉服务器要读哪个文件
//异步传输
//异步:多件事一件一件的做
//同步:多件事情一起进行
//但是js里面的同步、异步和现实里的同步、异步相反。
//同步:多件事一件一件的做
//异步:多件事情一起进行
//ajax天生是用来做异步的
xhr.open("GET",url,true); //异步方式
//
3、发送请求
xhr.send();
//
4、接收服务器返回内容,并处理
xhr.onreadystatechange = function(){
//xhr.readyState :查看浏览器和服务器进行到哪一步了。
//0->(未初始化):还没有调用 open() 方法。
//1->(载入):已调用 send() 方法,正在发送请求。
//2->(载入完成):send() 方法完成,已收到全部响应内容。
//3->(解析):正在解析响应内容。
//4->(完成):响应内容解析完成,客户端可以调用了。
if(xhr.readyState == 4 && xhr.status == 200){
alert("请求成功!");
responseHandler(xhr.responseText);
}else{
alert("请求失败!");
}
}
}