`

ajax的两种常用调用方式

阅读更多

方式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("##");

 

分享到:
评论

相关推荐

    jQuery ajax调用后台aspx后台文件的两种常见方法(不是ashx)

    在asp.net webForm开发中,用Jquery ajax调用aspx页面的方法常用的有两种:下面我来简单介绍一下。 (1)通过aspx.cs的静态方法+WebMethod进行处理 简单的介绍下WebMethod方法的用法 1.修饰符主要用public static修饰...

    当jquery ajax遇上401请求的解决方法

    ajax请求有两种方式 1. 回调 最常写的方式,成功失败处理以回调方式传入。 $.ajax({ ajax参数... success : xxxxxx error: xxxxxx }); 2. Deferred方式 Deferred模式我在《js异步编程》有说明, ajax调用本身...

    详解js跨域请求的两种方式,支持post请求

    常用的jquery实现跨域调用 $.ajax({ url: "http://127.0.0.1/~chenjiebin/mycode/php/crossdomain/index.php", dataType: "jsonp", jsonp: "callback", context: document.body, success: function(data) { ...

    jQuery fDialog弹出层插件 v1.0.1.rar

     1、宽高支持 width或w,height或h 两种方式调用  2、ajax模块,增加ajaxData参数  3、默认插件中增加拖拽功能(drag参数为true代码允许拖拽)  4、默认模块中去掉footer高度限制,防止在CSS3 box-sizing: border-...

    jQuery fDialog v1.0.1

    更新日志2015-06-03 :发布v1.0.02015-06-12 :更新为v1.0.11、宽高支持 width或w,height或h 两种方式调用2、ajax模块,增加ajaxData参数3、默认插件中增加拖拽功能(drag参数为true代码允许拖拽)4、默认模板中去掉...

    Ajax原理详解

    JavaScript创建数组有两种方式: 在JavaScript中可以创建命名函数、匿名函数和内部函数 JavaScript中函数的参数长度是不固定的,实际参数可以与形式参数的个数不同 JavaScript中对象就是无序属性的集合,对象的属性...

    基于PHP+Ajax实现表单验证的详解

    两种常用调用方法:(1)将事件添加到页面元素中,当用户输入完信息后,单击任意键,onkeydown事件被触发,并调用refer()函数。这种方法最简单,最直接,格式如下:复制代码 代码如下:[removed] … function refer()...

    DWR.xml配置文件说明书(含源码)

    Creator可以配置类的成员函数的访问权限.creator有授权访问(指明可以被访问的方法)和拒绝访问(指明不允许访问的方法)两种配置方式. 如果要设置除了setWibble方法之外的所有方法都不可访问可以采用下面的设置. ...

    js中匿名函数的创建与调用方法分析

    本文实例分析了js中匿名函数的创建与调用方法。分享给大家供大家参考。具体实现方法如下: 匿名函数就是没有名字的函数了...匿名函数主要有两种常用的场景,一是回调函数,二是直接执行函数。 回调函数,像ajax的异步操

    庖丁解牛:纵向切入ASP.NET 3.5控件和组件开发技术

    3.3 render呈现控件的几种方式 30 3.3.1 使用htmltextwriter类输出 30 3.3.2 直接输出html标签 32 3.3.3 使用服务器控件的rendercontrol方法 33 3.4 addattributestorender方法 34 3.5 createchildcontrols方法...

    亮剑.NET深入体验与实战精要2

    4.7 无标题窗体拖动的两种方法 183 4.8 让程序只启动一次——单实例运行 184 4.9 实现系统托盘和热键呼出 185 4.10 进程与多线程的区别 190 4.11 创建多线程应用程序 191 4.12 WinForm开发常见问题 194 4.12.1 如何...

    庖丁解牛 纵向切入ASP.NET 3.5控件和组件开发 part1

    3.3 render呈现控件的几种方式 30 3.3.1 使用htmltextwriter类输出 30 3.3.2 直接输出html标签 32 3.3.3 使用服务器控件的rendercontrol方法 33 3.4 addattributestorender方法 34 3.5 createchildcontrols方法...

    庖丁解牛 纵向切入ASP.NET 3.5控件和组件开发 part2

    3.3 render呈现控件的几种方式 30 3.3.1 使用htmltextwriter类输出 30 3.3.2 直接输出html标签 32 3.3.3 使用服务器控件的rendercontrol方法 33 3.4 addattributestorender方法 34 3.5 createchildcontrols方法...

    亮剑.NET深入体验与实战精要3

    4.7 无标题窗体拖动的两种方法 183 4.8 让程序只启动一次——单实例运行 184 4.9 实现系统托盘和热键呼出 185 4.10 进程与多线程的区别 190 4.11 创建多线程应用程序 191 4.12 WinForm开发常见问题 194 4.12.1 如何...

    PageAdmin政府网站管理系统

    11、投稿功能:支持会员投稿和后台投稿两种方式,并可以对权限进行权限的设置,如限制分类,管理权限,删除权限等,可结合工作流。 12、信息推送:信息可以推送到任意分类或分站点上,如一篇文章可以属于A类(A...

    JAVA上百实例源码以及开源项目

     通过网络或磁盘等方式,把公钥编码传送给李四,李四接收到张三编码后的公钥,将其解码,李四用张三的公钥加密信息,并发送给李四,张三用自己的私钥解密从李四处收到的信息…… Java利用DES私钥对称加密代码实例 ...

    庖丁解牛纵向切入ASP.NET 3.5控件和组件开发技术.pdf

    3.3 render呈现控件的几种方式30 3.3.1 使用htmltextwriter类输出30 3.3.2 直接输出html标签32 3.3.3 使用服务器控件的rendercontrol方法33 3.4 addattributestorender方法34 3.5 createchildcontrols方法35 ...

    java开源包1

    利用Google:maps JSP标签库就能够在你的Web站点上实现GoogleMaps的所有功能而且不需要javascript或AJAX编程。它还能够与JSTL相结合生成数据库驱动的动态Maps。 OAuth 实现框架 Agorava Agorava 是一个实现了 OAuth ...

    企业网站程序

    11、投稿功能:支持会员投稿和后台投稿两种方式,并可以对权限进行权限的设置,如限制分类,管理权限,删除权限等,可结合工作流。 12、信息推送:信息可以推送到任意分类或分站点上,如一篇文章可以属于A类(A...

    千方百计笔试题大全

    124、两种跳转方式分别是什么?有什么区别? 31 125、如何执行一个线程安全的JSP? 31 126、JSP如何处理HTML FORM中的数据? 31 127、在JSP如何包含一个静态文件? 32 128、在JSP中如何使用注释? 32 129、在JSP中如何...

Global site tag (gtag.js) - Google Analytics