创建XMLHtttRequest对象(针对mozilla,IE8,FF,IE5,IE5.5,IE6,IE7)
//2、创建XMLHttpRequest对象
//这其实是XMLHttpReqest对象使用最复杂的一步
//针对IE和其他类型浏览器建立这个对象的不同方式写不同的代码
if(window.XMLHttpRequest){
//针对firefox,mozillaz,opera,IE7,IE8
xmlhttp = new XMLHttpRequest();
//用于修复某些Mozillaz浏览器bug
if(xmlhttp.overrideMimeType)
{
xmlhttp.overrideMimeType("text/xml");
}
}
else if(window.ActiveXObject){
//针对IE6,IE5.5,IE5
//两个都可以创建XMLHttpRequest对象,保存在js数组中
var activeName=["MSXML2.XMLHTTP","Microsoft.XMLHTTP"];
//var activeName= ['MSXML2.XMLHTTP.6.0','MSXML2.XMLHTTP.5.0', //'MSXML2.XMLHTTP.4.0','MSXML2.XMLHTTP.3.0', //'MSXML2.XMLHTTP','Microsoft.XMLHTTP'];
for(var i =0;i<activeName.length;i++)
{//取出一个控件名来创建XMLHttpRequest对象,创建成功就终止循环,如果创建失败可以继续创建
//可以抛出异常,继续创建
try{
xmlhttp= new ActiveXObject(activeName[i]);
break;
}catch(e){
}
}
}
//确认XMLHttpRequest对象已经创建成功
if(!xmlhttp)
{
alert("XmlHttpRequest创建失败");
return;
}
//3、注册回调函数,函数名后面不要加括号
//如果加了括号,就变成了调用函数,会把函数的返回值发挥给xmlhttp,没有达到我们的目的
xmlhttp.onreadystatechange=callback;
//4、设置连接信息
//第一个参数设置http请求方式,主要是get和post两种方式
//第二个参数是uri地址
//第三个参数表示异步交互还是同步交互方式,true表示异步,false表示同步
xmlhttp.open("GET","/JQuery/servlet/AjaxServlet?name="+username,true);
//5、发送数据开始和服务器端交互
//同步方式下,send这句话会在服务器端的数据回来后,才执行完
//异步方式下,send会立即执行完
xmlhttp.send(null);
}
//5、写回调函数
//回调函数
function callback(){
//接收相应的相应数据
//判断交互状态已经完成
if(xmlhttp.readyState ==4)
{
//判断http的交互状态
if(xmlhttp.status == 200)
{
//获取服务器端返回的数据
//获取服务器端纯文本数据
var responseText = xmlhttp.responseText;
//将数据显示在页面上
//通过dom获取div元素节点
var divNode =document.getElementById("result");
//设置元素节点的html内容
divNode.innerHTML=responseText;
}
}