Ajax类库及使用方法

 1 function Ajax(recvType){
 2     var aj=new Object();
 3     aj.recvType=recvType ? recvType.toUpperCase() : ‘HTML‘ //HTML XML
 4     aj.targetUrl=‘‘;
 5     aj.sendString=‘‘;
 6     aj.resultHandle=null;
 7     aj.createXMLHttpRequest=function(){
 8     var request=false;
 9     //window对象中有XMLHttpRequest存在就是非IE,包括(IE7,IE8)
10     if(window.XMLHttpRequest){
11         request=new XMLHttpRequest();
12         if(request.overrideMimeType){
13             request.overrideMimeType("text/xml");
14         }
15     //window对象中有ActiveXObject属性存在就是IE
16     }else if(window.ActiveXObject){
17         var versions=[‘Microsoft.XMLHTTP‘, ‘MSXML.XMLHTTP‘, ‘Msxml2.XMLHTTP.7.0‘,‘Msxml2.XMLHTTP.6.0‘,‘Msxml2.XMLHTTP.5.0‘, ‘Msxml2.XMLHTTP.4.0‘, ‘MSXML2.XMLHTTP.3.0‘, ‘MSXML2.XMLHTTP‘];
18         for(var i=0; i<versions.length; i++){
19             try{
20                 request=new ActiveXObject(versions[i]);
21                 if(request){
22                     return request;
23                 }
24             }catch(e){
25                 request=false;
26             }
27         }
28     }
29         return request;
30     }
31     aj.XMLHttpRequest=aj.createXMLHttpRequest();
32     aj.processHandle=function(){
33         if(aj.XMLHttpRequest.readyState == 4){
34             if(aj.XMLHttpRequest.status == 200){
35                 if(aj.recvType=="HTML")
36                     aj.resultHandle(aj.XMLHttpRequest.responseText);
37                 else if(aj.recvType=="XML")
38                     aj.resultHandle(aj.XMLHttpRequest.responseXML);
39             }
40         }
41     }
42
43     aj.get=function(targetUrl, resultHandle){
44         aj.targetUrl=targetUrl;
45
46         if(resultHandle!=null){
47             aj.XMLHttpRequest.onreadystatechange=aj.processHandle;
48             aj.resultHandle=resultHandle;
49         }
50         if(window.XMLHttpRequest){
51             aj.XMLHttpRequest.open("get", aj.targetUrl);
52             aj.XMLHttpRequest.send(null);
53         }else{
54             aj.XMLHttpRequest.open("get", aj.targetUrl, true);
55             aj.XMLHttpRequest.send();
56         }
57     }
58
59     aj.post=function(targetUrl, sendString, resultHandle){
60         aj.targetUrl=targetUrl;
61         if(typeof(sendString)=="object"){
62             var str="";
63             for(var pro in sendString){
64                 str+=pro+"="+sendString[pro]+"&";
65             }
66             aj.sendString=str.substr(0, str.length-1);
67         }else{
68             aj.sendString=sendString;
69         }
70         if(resultHandle!=null){
71             aj.XMLHttpRequest.onreadystatechange=aj.processHandle;
72             aj.resultHandle=resultHandle;
73         }
74         aj.XMLHttpRequest.open("post", targetUrl);
75         aj.XMLHttpRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
76         aj.XMLHttpRequest.send(aj.sendString);
77     }
78     return aj;
79 }  
<script type="text/javascript">
    var ajax = Ajax(); // 实例化对象,默认为 HTTP,如果传入 XML,返回 XML 对象
    // Ajax 的 get 方法使用说明
    /**
    * function(targetUrl, resultHandle)
    * @param string targetUrl 传递过去的 URL 地址
    * @param string resultHandle 回调函数,可选项
    */
    ajax.get(‘test.php?name=liruxing&[email protected]‘, function(data) {
        eval("var obj="+data);
        alert(obj.name);
        alert(obj.email);
    });  

    // Ajax 的 post 方法使用说明
    /**
    * function(targetUrl, sendString, resultHandle)
    * @param string targetUrl 传递过去的 URL 地址
    * @param string sendString 参数值
    * @param string resultHandle 回调函数,可选项
    */
    ajax.post(‘test.php‘, ‘name=liruxing&[email protected]‘, function(data){
        eval("var obj="+data);
        alert(obj.name);
        alert(obj.email);
    })  

    // post 第二种格式,第二个参数为 Json 格式
    ajax.post(‘test.php‘, {name:‘李茹星‘,email:‘[email protected]‘}, function(data){
        eval("var obj="+data);
        alert(obj.name);
        alert(obj.email);
    })
</script>  
时间: 2024-10-08 20:50:29

Ajax类库及使用方法的相关文章

jQuery的ajax的form提交方法应用

1.如果不用ajax的form提交,就必须把表单的每一条数据进行获取,并提交给action进行处理.这样做比较麻烦,现在用了jQuery的easyui,使用封装好的ajax的form提交.脚本代码如下: //提交表单 function sysusersave(){ if($.formValidator.pageIsValid()){//校验表单输入信息是否合法 //使用jquery的ajax from提交,指定from的id和回调方法,提交的url使用提from中的action,参数为空,传递J

Ajax类库需要注意的问题

构建Ajax类库时,注意四步就可以了: 1:创建Ajax  对象 2:链接服务器 3:发送请求 4:返回响应 下面是我自己写的一个Ajax类库: function  ajax(url,fnn,fai) { //1:创建ajax对象 var oAjax=null; if(window.XMLHttpRequest)----这里由于没有XMLHttpRequest这个东西,所以会报错,但加上window后,相当于window的一个属性. { oAjax=new XMLHttpRequest(); }

嘿嘿。今天学习了AJAX的几个方法

今天学习了AJAX的几个方法,其实我很早在公司实习的时间就认识了它,但是对它一无所知,也并没有去学习它,今天学习它让我感到很兴奋因为重新了解了它,嘿嘿,下面就来总结一下今天学习的吧. 一.在javascript中写AJAX <script> window.onload = function () { document.getElementById("txtName").onblur = function () { var xml = new XMLHttpRequest()

jQuery ajax同步的替换方法,使用 $.Deferred()对象

function aa() { var defer = $.Deferred(); $.ajax({ url: "/Handler1.ashx", type: "post", success: function (data) { defer.resolve(data);//这里的data数据会传到$.when(aa()).done(function(data) data里面 } }); return defer.promise(); } $(function ()

JavaScript之Ajax-1 Ajax(Ajax原理、Ajax对象属性和方法)

一.Ajax原理 Ajax简介 - Asynchronous JavaScript And Xml 异步的 JavaScript 和 Xml - Ajax 是一种用来改善用户体验的技术,其实质是,使用XMLHttpRequest对象异步地向服务器发送请求 - 服务器返回部分数据,而不是一个完整的页面,以页面无刷新的效果更改页面中的局部内容 Ajax工作原理 获取Ajax对象 二.Ajax对象属性和方法 异步对象的属性和方法 onreadystatechange - onreadystatecha

jquery.ajax请求aspx和ashx的异同 Jquery Ajax调用aspx页面方法

1.jquery.ajax请求aspx 请求aspx的静态方法要注意一下问题: (1)aspx的后台方法必须静态,而且添加webmethod特性 (2)在ajax方法中contentType必须是"application/json", (3)data传递的数据必须是严格的json数据,如"{'a':'aa','b':'bb'}",而且参数必须和静态方法的参数一 一对应 (4)aspx的后台方法返回的数据默认形式是"{'d':'返回的内容'}",所

javascript实现原生ajax的几种方法

自从js有了各种框架之后,比如jquery,使用ajax已经变的相当简单了.但有时候为了追求简洁,可能项目中不需要加载jquery这种庞大的js插件.但又要使用到ajax这种功能该如何办呢?下面和大家分享几种利用javascript实现原生ajax的方法. 首先实现ajax之前必须要创建一个 XMLHttpRequest 对象的.如果不支持创建该对象的浏览器,则需要创建 ActiveXObject,具体方法如下: var xmlHttp; function createxmlHttpReques

用Qt生成dll类库及调用方法

空白工程新建DLL后,将DLL和LIB文件放入需要调用的"指定目录" 项目->属性->连接器->常规->附加库目录->添加"指定目录" 项目->属性->连接器->输入->附加依赖项->添加"LIB文件" 添加头文件到项目中,则DLL可用! VC6.0: 使一个项目编译生成DLL库而不生成可执行文件: 删除main()方法: 将.pro项目文件中的TEMPLATE = app改为TEMPL

AJAX乱码解决新方法

用过AJAX的朋友肯定知道javascript是使用UTF-8国际编码,即每个汉字用3个字节来存储,但是这就造成了用AJAX来send数据的时候出现乱码.     有一种解决办法就是使用encodeURIComponent加上修改 Content-Type 为 application/x-www-form-urlencoded" 来把数据统一编码成 url 格式,但是这样做有一个弊端,使用php的urldecode根本不能得到正确的文字.     另一种方法就是通过vbscript 的写的函数把