自我学习——javascript——Ajax和commt
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