日期:2014-05-16  浏览次数:20639 次

ajax的两种常用调用方式

方式1:

Js代码?

//请求js ?

<script language="javascript"> ?

var _object; ?

var xmlhttp = null; ?

var interval = null; ?

var rtnData = new Array(); ?

var btype; ?

?

//判断浏览器类型 ?

//ie和firefox对ajax请求回调函数的调用方式不同 ?

function getOs(){ ??

?var OsObject = ""; ??

?if(navigator.userAgent.indexOf("MSIE")>0) { ?

??return "MSIE"; //IE浏览器 ?

?} ??

?if(isFirefox=navigator.userAgent.indexOf("Firefox")>0){ ??

??return "Firefox"; //Firefox浏览器 ?

?} ??

?if(isSafari=navigator.userAgent.indexOf("Safari")>0) { ?

??return "Safari"; //Safan浏览器 ?

?} ??

?if(isCamino=navigator.userAgent.indexOf("Camino")>0){ ??

??return "Camino"; //Camino浏览器 ?

?} ??

?if(isMozilla=navigator.userAgent.indexOf("Gecko/")>0){ ??

??return "Gecko"; //Gecko浏览器 ?

?} ?

} ?

?

?

function loadXMLDoc(xmlName,dataTypeId){ ?

?//动态请求调用地址 ?

?var ivkUrl = "<%=path%>/jsp/DataRequest/autoFindRtnDataGTS.jsp?xmlName=" + xmlName + "&"+ Math.random(); ?

?//alert("** ivkUrl = "+ ivkUrl); ?

?

?if (window.XMLHttpRequest){ ?

??xmlhttp=new XMLHttpRequest(); ?

?}else if (window.ActiveXObject){ ?

??xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); ?

?} ?

?

?if (xmlhttp){ ?

??xmlhttp.open("GET",ivkUrl,false); ?

?

?? ? btype = getOs(); ?

?? ? if(btype != "Firefox"){//IE回调state_Change接口 ?

?? ? ?xmlhttp.onreadystatechange = state_Change; ?

??} ? ? ? ?

??xmlhttp.send(null); ?

?

??if(btype == "Firefox"){//Firefox做特殊处理 ?

?? var dataTypeId = "<%=dataTypeId%>"; ? ? ? ?

?? if(dataTypeId == 1){ ?

?? ?updatePage();//页面逻辑 ?

?? } ?

??} ?

?}else{ ?

??alert("Your browser does not support XMLHTTP"); ?

?} ?

?

?//每隔10秒调用1次 ?

?interval = window.setTimeout("loadXMLDoc('<%=xmlName%>','<%=dataTypeId%>')", 10000); ?

?if(rtnData.length == 1 && rtnData[0].downUrl){//1个下载链接 ?

??window.clearTimeout(interval); ?

?} ?

?if(rtnData.length > 1){//多个下载链接 ?

??window.clearTimeout(interval); ?

?} ?

} ?

?

?

function state_Change(){ ?

?var dataTypeId = "<%=dataTypeId%>"; ?

?

?if (xmlhttp.readyState==4){ ?

??if (xmlhttp.status==200){ ?

?? if(dataTypeId == 1){ ?

?? ?updatePage();//页面逻辑 ?

?? } ?

??} ?

?} ?

} ?

?

//js中解析返回数组数据 ?

rtnData = eval(xmlhttp.responseText); ?

?

?

方式2:

?

Js代码?

if (xmlhttp){ ?

?try{ ?

??xmlhttp.open("POST",'DateValidator.do',false); ?

?? ? xmlhttp.send(currStartDate+"##"+currEndDate);//参数传递 ?

?}catch (exception){ ?

??alert(exception); ?

?} ?

?

?//js中解析返回数组数据 ?

?rtnData = xmlhttp.responseText; ?

?.... ? ? ? ?

}else{ ?

?alert("Your browser does not support XMLHTTP"); ?

} ?

?

?

java端处理:

Java代码?

String dateString = (String)requestObj.getData("REQUEST_XMLHTTP");//取得ajax提交的参数 ?

String[] dateArray = dateString.split("##"); ?

?