封装ajax小工具:

  1 ajax-lib/ajaxutils.js:
  2
  3 // 创建request对象
  4 function createXMLHttpRequest() {
  5     try {
  6         return new XMLHttpRequest();//大多数浏览器
  7     } catch (e) {
  8         try {
  9             return ActvieXObject("Msxml2.XMLHTTP");//IE6.0
 10         } catch (e) {
 11             try {
 12                 return ActvieXObject("Microsoft.XMLHTTP");//IE5.5及更早版本
 13             } catch (e) {
 14                 alert("哥们儿,您用的是什么浏览器啊?");
 15                 throw e;
 16             }
 17         }
 18     }
 19 }
 20 /*
 21  * option对象有如下属性
 22  */
 23          /*  请求方式method,
 24         /*  请求的url url,
 25         /*  是 否异步asyn,
 26         /*  请求体params,
 27         /*  回调方法callback,
 28         /*  服务器响应数据转换成什么类型type
 29         */
 30 function ajax(option) {
 31     /*
 32      * 1. 得到xmlHttp
 33      */
 34     var xmlHttp = createXMLHttpRequest();
 35     /*
 36      * 2. 打开连接
 37      */
 38     if(!option.method) {//默认为GET请求
 39         option.method = "GET";
 40     }
 41     if(option.asyn == undefined) {//默认为异步处理
 42         option.asyn = true;
 43     }
 44     xmlHttp.open(option.method, option.url, option.asyn);
 45     /*
 46      * 3. 判断是否为POST
 47      */
 48     if("POST" == option.method) {
 49         xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
 50     }
 51     /*
 52      * 4. 发送请求
 53      */
 54     xmlHttp.send(option.params);
 55
 56     /*
 57      * 5. 注册监听
 58      */
 59     xmlHttp.onreadystatechange = function() {
 60         if(xmlHttp.readyState == 4 && xmlHttp.status == 200) {//双重判断
 61             var data;
 62             // 获取服务器的响应数据,进行转换!
 63             if(!option.type) {//如果type没有赋值,那么默认为文本
 64                 data = xmlHttp.responseText;
 65             } else if(option.type == "xml") {
 66                 data = xmlHttp.responseXML;
 67             } else if(option.type == "text") {
 68                 data = xmlHttp.responseText;
 69             } else if(option.type == "json") {
 70                 var text = xmlHttp.responseText;
 71                 data = eval("(" + text + ")");
 72             }
 73
 74             // 调用回调方法
 75             option.callback(data);
 76         }
 77     };
 78 };
 79
 80
 81
 82
 83
 84 servlet:
 85     public void doGet(HttpServletRequest request, HttpServletResponse response)
 86             throws ServletException, IOException {
 87
 88         String str = "{\"name\":\"zhangSan\", \"age\":189999, \"sex\":\"male\"}";
 89         response.getWriter().print(str);
 90         System.out.println(str);
 91         }
 92
 93 使用:
 94 <script type="text/javascript">
 95     window.onload = function() {
 96         var btn = document.getElementById("btn");
 97         btn.onclick = function() {
 98             ajax(
 99             {
100                 url : "<c:url value =‘/Aservlet‘/>",
101                 type : "json",
102                 callback : function(data) {
103                     document.getElementById("h3").innerHTML = data.name +","
104                             + data.age + "," + data.sex;
105                     }
106             }
107             );
108         };
109     };
110 </script>
111 </head>
112 <body>
113     <button id="btn">点击这里</button>
114     <h1>显示自己的ajax小工具</h1>
115     <h3 id="h3"></h3>
116 </body>
时间: 2024-10-16 12:09:40

封装ajax小工具:的相关文章

AJAX编程-封装ajax工具函数

即 Asynchronous [e's??kr?n?s] Javascript And XML,AJAX 不是一门的新的语言,而是对现有技术的综合利用.本质是在HTTP协议的基础上以异步的方式与服务器进行通信. XMLHttpRequest可以以异步方式的处理程序,浏览器内建对象,用于在后台与服务器通信(交换数据) ,由此我们便可实现对网页的部分更新,而不是刷新整个页面. 封装ajax工具函数 $.ajax = function(options){ if(!options) return fal

JavaScript封装Ajax工具函数及jQuery中的ajax

封装ajax工具函数 /** * ITCAST WEB * Created by zhousg on 2016/5/24. */ /* * 1. 请求的类型 type get post * 2. 请求地址 url * 3. 是异步的还是同步的 async false true * 4. 请求内容的格式 contentType * 5. 传输的数据 data json对象 * * 6.响应成功处理函数 success function * 7.响应失败的处理函数 error function *

js 创建书签小工具之理论

我们一直在寻找增加浏览体验的方法,有的方法众所周知,有的则鲜为人知.我原本认为书签小工具属于后者,非常令人讨厌的东西.令我非常懊恼的是我发现在这个问题上我完全是错误的.它并不是令人厌烦的,而是以用户为中心的,能实现很多出色的功能,而且就像人们所预期的一样,它成为了我与浏览者以及网络交互的核心部分. 这里我想向你介绍开发书签小工具以实现一些精妙的书签的全过程.是的,书签,我们将创建不只一个书签,即使是非常小的书签.很好奇吗?我们开始吧! 究竟什么是书签小工具呢? 引用前文的话: 书签小工具是一个非

Windows 上的 Jetty 小工具

做项目经常遇到需要开发Java应用,我喜欢用Jetty进行开发.部署,主要是由于Jetty的轻量级. Jetty 项目主页:http://www.eclipse.org/jetty/, 最新版9.30刚刚添加对 HTTP/2的支持. 但是Jetty在Windows下部署不是很方便,需要用命令行. 每次都要使用命令行,很是麻烦,于是我打算做一个Jetty的小工具,把命令行操作封装一下,可以在GUI中启动.停止Jetty,可以配置常用参数等. 完成之后的界面如下: 测试代码下载 编译好的可执行文件:

动态加载页面数据的小工具 javascript + jQuery (持续更新)

使用该控件,可以根据url,参数,加载html记录模板(包含json参数对应,以及具体记录位置Index根据参数描述加载对应的属性,并可以根据简单的判断分支加载对应html或者控件)至列表容器内(JQuery选择器字符串)注: 该控件在使用前需引入JQuery框架支持,使用该控件,可极大的减少Ajax列表数据动态加载开发工作的实际工作量. 使用方式: 首先,添加控件引用,并加入Jquery支持 <script src="js/jquery.js"></script&g

网上书城小工具(也适用于其他项目)

工欲善其事,必先利其器.下面我们来介绍一下在项目中要使用的小工具(itcast-tools-1.4.jar).这个小工具底层使用了: · c3p0数据库连接池: · common-beanutils: ·common-dbutils: · javaMail: 1 CommonUtils(通用工具类) CommonUtils类就两个方法: ·String uuid():生成长度32的随机字符,通常用来做实体类的ID.底层使用了UUID类完成: ·T toBean(Map, Class<T>):把

Python实现linux/windows通用批量‘命令/上传/下载’小工具

这阵子一直在学python,碰巧最近想把线上服务器环境做一些规范化/统一化,于是便萌生了用python写一个小工具的冲动.就功能方面来说,基本上是在"重复造轮子"吧,但是当我用这小工具完成了30多台服务器从系统层面到应用层面的一些规范化工作之后,觉得效果还不算那么low(高手可忽略这句话~~),这才敢拿出来跟小伙伴们分享一下. (注:笔者所用为python版本为3.5,其他版本未经测试~~) 其实很简单,就"一个脚本"+"server信息文件"实

用php写一个管理外借设备的小工具--技术提高生产力

我学网站编程属于半途出家的类型,本是搞运维的,进了现在的公司后意识到学习一门编程语言的重要性,便从平时的工作时间里抽出部分来做学习和练习. 公司做技术的都是属于编程出身的,从网站设计到手机程式设计,好像大多数的人都在走这样的一条道路. 公司的部分业务是做手机游戏开发的,测试设备也越来越多,管理权归我们运维两个人所有,一直以来都是用个小笔记本做外借的登记,每天都有不同的测试人员过来借设备,ipad,iphone,android机,借了又还,还了另外一个人过来借,不用多久,那笔记本已经累积到厚厚的一

web day19 Service层处理事务(利用ThreadLocal),TxQueryRunner小工具,单表练习(增删改查操作),分页

Service事务 DAO中不是处理事务的地方,因为DAO中的每个方法都是对数据库的一次操作 在Service中不应该出现Connection,它应该只在DAO中出现, 因为它是JDBC的东西,JDBC的东西是用来连接数据库的 修改JdbcUtils 我们把对事务的开启和关闭放到JdbcUtils中,在Service中调用JdbcUtils的方法来完成事务的处理, 但在Service中就不会再出现Connection这一"禁忌"了. 代码 public class JdbcUtils