ajax的两种常用调用方式

本文介绍了一种利用JavaScript和AJAX技术进行数据请求的方法。通过两种不同的请求方式,一种是GET方法用于周期性地请求服务器上的数据,另一种是POST方法用于发送数据到服务器并接收响应。文中详细解释了如何根据不同的浏览器类型调整代码,以确保其兼容性和正确运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

方式1:

//请求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:

 

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端处理:

String dateString = (String)requestObj.getData("REQUEST_XMLHTTP");//取得ajax提交的参数
String[] dateArray = dateString.split("##");

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值