用js内置对象XMLHttpRequest 来用ajax
步骤:
/* 用XMLHTTPRequest来进行ajax异步数据交交互*/
主要有几个步骤:
//1.创建XMLHTTPRequest对象
//最复杂的一步
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
//针对某些特定版本的mozillar浏览器的bug进行修正。
if (xmlhttp.overrideMimeType) {
xmlhttp.overrideMimeType('text/xml');
};
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
2.注册回调函数
xmlhttp.onreadystatechange = callback;
//3.设置连接信息。
//open第一个参数链接方式,第二是url地址
//3,true是异步链接
//xmlhttp.open("GET","xhr.php?name=" + username,true);
//使用post方式发送数据
xmlhttp.open("POST","xhr.php",true);
//post需要自己设置http的请求头
xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
//4,发送数据,开始和服务器进行交互
//中如果true, send这句话会立即执行
//如果是false(同步),send会在服务器数据回来才执行
//xmlhttp.send(null);
//因为是get所以send中不需要内容
xmlhttp.send('name=' +username);
}
//5.写回调函数,不同相应状态进行处理
function callback(){
alert(xmlhttp.readyState);
//判断对象状态是交互完成,接收服务器返回的数据
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
//["dada","xiaoyin","liujie"]
//纯文本的数据
var responseText = xmlhttp.responseText;
var divNode = document.getElementById('result');
//6.将服务器的数据显示在客户端
divNode.innerHTML = responseText;
}
}
代码:
1 <!doctype html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>XHR</title> 6 <link rel="stylesheet" href="../templates/css/verify.css"> 7 </head> 8 <body> 9 10 <input type="text" id="username"><input type="button" value="提交" onclick="dadaHttpRequest()"> 11 <div class="box" id="box"></div> 12 <script type="text/javascript" src="../templates/js/jquery.js"></script> 13 <script> 14 15 /* 用XMLHTTPRequest来进行ajax异步数据交交互*/ 16 //1.创建XMLHTTPRequest对象 17 var xmlhttp; 18 //最复杂的一步 19 function dadaHttpRequest(){ 20 var username = document.getElementById('username').value; 21 if (window.XMLHttpRequest) { 22 // code for IE7+, Firefox, Chrome, Opera, Safari 23 xmlhttp = new XMLHttpRequest; 24 25 //针对某些特定版本的mozillar浏览器的bug进行修正。 26 if (xmlhttp.overrideMimeType) { 27 xmlhttp.overrideMimeType('text/xml'); 28 }; 29 30 } else if (window.ActiveXObject){ 31 // code for IE6, IE5 32 xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); 33 }; 34 35 //2.注册回调函数 36 //onreadystatechange是每次 readyState 属性改变的时候调用的事件句柄函数。 37 xmlhttp.onreadystatechange = callback; 38 39 //3.设置连接信息 40 //初始化HTTP请求参数,但是并不发送请求。 41 //第一个参数连接方式,第二是url地址,第三个true是异步连接,默认是异步 42 xmlhttp.open("GET","xhr.php?name="+username,true); 43 44 /*******************************************/ 45 /*如果是xmlhttp.open("GET","xhr.php",true);*/ 46 /* xmlhttp.send('name=' +username); */ 47 /* 不行的 */ 48 /*******************************************/ 49 50 //使用post方式发送数据 51 //xmlhttp.open("POST","xhr.php",true); 52 //post需要自己设置http的请求头 53 //xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); 54 55 //4,发送数据,开始和服务器进行交互 56 //发送 HTTP 请求,使用传递给 open() 方法的参数,以及传递给该方法的可选请求体。 57 //中如果true, send这句话会立即执行 58 //如果是false(同步),send会在服务器数据回来才执行 59 xmlhttp.send(null); 60 //因为是get所以send中不需要内容 61 //xmlhttp.send('name=' +username); 62 63 } 64 65 //5回调函数,不同相应状态进行处理 66 function callback(){ 67 //alert(xmlhttp.readyState); 68 //判断对象状态是交互完成,接收服务器返回的数据 69 if (xmlhttp.readyState==4 && xmlhttp.status==200) 70 { 71 //["dada","xiaoyin","liujie"] 72 //纯文本的数据 73 var responseText = xmlhttp.responseText; 74 var divNode = document.getElementById('box'); 75 //6.将服务器的数据显示在客户端 76 divNode.innerHTML = responseText; 77 } 78 } 79 </script> 80 </body>