1.一个基本的ajax例子:
1 function creatXHR(){
2 //适用于ie7及以后的ie版本和现代浏览器
3 if(typeof XMLHttpRequest != "undefined"){
4 return new XMLHttpRequest();
5 }else if(typeof ActiveXObject!="undefined"){
6 if(typeof arguments.callee.activeXString!="String"){
7 var versions=["MSXML2.XMLHttp.6.0","MSXML2.XMLHttps.3.0","MSXML2.XMLHttp"];
8 var i,len;
9 for(i=0,lem=versions.length;i<len;i++){
10 try{
11 new ActiveXObject(versions[i]);
12 arguments.callee.activeXString=versions[i];
13 break;
14 }catch(ex){
15 //跳过
16 }
17 }
18 }
19 return new ActiveXObject(arguments.callee.activeXString);
20 }else{
21 throw new Error("No XHR Object available");
22 }
23 }
24
25 //创建一个跨浏览器的XmlHttpRequest对象,
26 var xhr=new creatXHR();
27
28 //设置当请求返回时候的执行函数
29 xhr.onreadystatechange=function(){
30 if(xhr.readyState==4){ //readyState==4代表请求完成,接收到了全部数据
31 if(( xhr.status>=200&&xhr.status<=300 )||xhr.status==304){ //200++是成功标志,304是缓存中有不需要更改标志,都是成功得到数据的情况
32 alert(xhr.responseText); //返回请求到的数据
33 }else{
34 alert("请求不成功");
35 document.getElementById("status").innerHTML=xhr.status; //返回失败请求的头部用于判断出错位置
36 document.getElementById("statusText").innerHTML=xhr.statusText; //返回失败请求的原因说明,但是这个说明在各个浏览器表现是不一致的
37 }
38 }
39 }
40
41 xhr.open("get","../jquery-1.7.2.min.js",true); //注意,这里不是http请求,会导致状态码不变,但是实际上请求是成功的却还是显示请求不成功,但是我们一般情况下是用来请求http数据的
42 xhr.send(null); //这里可以设置请求http的参数,对应jquery的data