欢迎来到天天文库
浏览记录
ID:24060458
大小:27.00 KB
页数:3页
时间:2018-11-12
《ajax:异步请求(在不刷新整个页面情况下,实现局部交换客户端及服务》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、AJAX的要点是XMLxmlHttpuest对象。不同的浏览器创建XMLxmlHttpuest对象的方法是有差异的。IE浏览器使用ActiveXObject,而其他的浏览器使用名为XMLxmlHttpuest的JavaScript内建对象。一、创建请求①首先要判断当前的客户所使用的浏览器的内核类型,因为不同的浏览器内核创建XMLxmlHttpuest对象的方法是有差异的。判断是IE的内核:window.ActiveXObject判断不是IE内核:window.XMLxmlHttpuest②创建请求创建IE的内核的请求xmlHttp=newActiveXObject("Msxml2.
2、XMLHTTP");xmlHttp=newActiveXObject("Microsoft.XMLHTTP");创建非IE的内核的请求xmlHttp=newXMLHttpRequest();(备注:较新版本的InternetExplorer,则需要使用对象Msxml2.XMLHTTP,而较老版本的InternetExplorer则使用Microsoft.XMLHTTP)建议使用一下代码:try{//Firefox,Opera8.0+,SafarixmlHttp=newXMLHttpRequest();}catch(e){//InternetExplorertry{xmlHttp=n
3、ewActiveXObject("Msxml2.XMLHTTP");}catch(e){try{xmlHttp=newActiveXObject("Microsoft.XMLHTTP");}catch(e){alert("您的浏览器不支持AJAX!");returnfalse;}}}或者 try{ if(window.ActiveXObject){ for(vari=5;i;i--){ try{ if(i==2){ xmlHttp=newActiveXObject("Microsoft.XMLHTTP");}else{ xmlHttp=newActiveXObject
4、("Msxml2.XMLHTTP."+i+".0");alert("Msxml2.XMLHTTP."+i+".0"); xmlHttp.setRequestHeader("Content-Type","text/xml"); xmlHttp.setRequestHeader("Charset","gb2312");} break;} catch(e){ xmlHttp=false;}}}elseif(window.XMLxmlHttpuest){xmlHttp=newXMLHttpRequest(); if(xmlHttp.overrideMimeType){xmlHt
5、tp.overrideMimeType('text/xml');}}else{alert("不支持您的浏览器");}}catch(e){xmlHttp=false;}或者if(window.ActiveXObject){//创建IE内核的请求xmlHttp=newActiveXObject("Microsoft.XMLHTTP");}elseif(window.XMLHttpRequest){//创建火狐内核的请求xmlHttp=newXMLHttpRequest();}else{alert("咱不支持您的浏览器!");}二、发送请求①准备数据url:即请求的资源method:请求
6、的方式GET/POST(只使用GET)②打开请求,装载数据xmlHttp.open("GET",url,true);③做好处理结果的准备xmlHttp.onreadystatechange=dowork;(dowork是一个JS)④发送请求xmlHttp.send(null);三、处理结果①当请求状态发生改变的时候,自动回调属性onreadystatechange中的函数(方法,这里指的是dowork),在改方法中处理结果状态有五种,对应如下:0:请求未初始化(还没有调用open())。1:请求已经建立,但是还没有发送(还没有调用send())。2:请求已发送,正在处理中(通常现在
7、可以从响应中获取内容头)。3:请求在处理中;通常响应中已有部分数据可用了,但是服务器还没有完成响应的生成。4:响应已完成;您可以获取并使用服务器的响应了。functiondowork(){if(xmlHttp.readyState==4){//alert("获得响应");vartext=xmlHttp.responseText;//获得servlet中传递过来的数据放到text中varlab2=document.getElementById('lab2');//取得本
此文档下载收益归作者所有