`
nesta13
  • 浏览: 115837 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

自己写的ajax封装js类

阅读更多
js 代码
  1. function ajax(method,synchronous){   
  2.     
  3.     this._httpReq = false;  /*ajax初始化对象*/  
  4.     this.method = method;  /*get|post*/  
  5.     this.syn = synchronous;   /*是否采用异步请求,默认true*/  
  6.     
  7.     this.url = "";   /*提交异步请求的url地址*/  
  8.     this.resType = "";  /*异步请求返回数据类型text|xml*/  
  9.     this.callback = "";  /*异步请求完成后的回滚函数*/  
  10.     this.loading = "";  /*load函数*/  
  11.     this.content = null/*Ajax中send方法的参数*/  
  12.     this.readystate = -1; /*ajax的请求状态*/  
  13.     this.state = -1;  /*http请求响应代码*/  
  14.     
  15.      /************ get/set方法开始 ***************/  
  16.      //设置提交异步请求的url地址   
  17.      this.setUrl = function (url){   
  18.           this.url = url;   
  19.      }   
  20.     
  21.      //设置异步请求返回数据类型text|xml   
  22.      this.setResType = function (restype){   
  23.           this.resType = restype;   
  24.      }   
  25.     
  26.      //设置回滚函数   
  27.      this.setCallback = function (func){   
  28.           this.callback = func;   
  29.      }   
  30.     
  31.      //设置load函数   
  32.      this.setLoading = function (loadFunc){   
  33.           this.loading = loadFunc;   
  34.      }   
  35.     
  36.      //设置send自带的参数值,默认null   
  37.      this.setContent = function (contents){   
  38.         this.content = contents;   
  39.      }   
  40.      /*********get/set方法结束*******/  
  41.     
  42.      /*********状态显示方法*********/  
  43.      //调用window.alert方法   
  44.      this.alert = function (msg){   
  45.          window.alert(msg);   
  46.      }   
  47.     
  48.      //调用window.status的方法   
  49.      this.status = function (msg){   
  50.           window.status = msg;   
  51.      }   
  52.      /*********状态显示方法结束*********/  
  53.     
  54.      /*************执行方法开始*****************/  
  55.      //创建HttpXMLRequest   
  56.      this.createXMLRequest = function(){   
  57.      if(window.XMLHttpRequest){   
  58.            this._httpReq = new XMLHttpRequest();   
  59.       
  60.            if(this._httpReq.overrideMimeType){   
  61.                this._httpReq.overrideMimeType("text/xml");   
  62.            }   
  63.       }else if(window.ActiveXObject){   
  64.             try{   
  65.                  this._httpReq = new ActiveXObject("Msxml2.XMLHTTP");   
  66.             }catch(e){   
  67.                   try{   
  68.                        this._httpReq = new ActiveXObject("Microsoft.XMLHTTP");   
  69.                   }catch(e){}   
  70.             }    
  71.       }   
  72.  }   
  73.     
  74.      //初始化ajax对象   
  75.      this.init = function(){   
  76.           this.createXMLRequest();   
  77.      }   
  78.     
  79.      //发送一个http请求   
  80.      this.send = function (){   
  81.           if(this.resType.toLowerCase()=="post"){   
  82.                   _httpReq.setRequestHeader("Content-Type","application/x-www-form-urlencoded");   
  83.           }   
  84.           this._httpReq.open(this.method,this.url,this.syn);   
  85.           this._httpReq.send(this.content);   
  86.      }   
  87.     
  88.         //取消一个http请求   
  89.         this.abort = function (){   
  90.                this._httpReq.abort();   
  91.         }   
  92.     
  93.       this.callbackState = function(){   
  94.             switch(this._httpReq.readyState){   
  95.                    case 0:   
  96.                             this.readystate = 0;   
  97.                             break;   
  98.                    case 1:   
  99.                             this.readystate = 1;   
  100.                             break;   
  101.                    case 2:   
  102.                             this.readystate = 2;   
  103.                             break;   
  104.                    case 3:   
  105.                             this.readystate = 3;   
  106.                             break;   
  107.                    case 4:   
  108.                             this.readystate = 4;   
  109.                             switch(this._httpReq.status){   
  110.                                    case 200:   
  111.                                            eval(this.callback);   
  112.                                            break;   
  113.                                    case 202:   
  114.                                            this.status("请求处理中,还没处理完毕!");   
  115.                                            break;   
  116.                                    case 400:   
  117.                                            this.status("错误的请求!");   
  118.                                            break;   
  119.                                    case 404:   
  120.                                            this.status("请求资源未找到!");   
  121.                                            break;   
  122.                                    case 500:   
  123.                                            this.status("内部服务器错误,请联系管理员!");   
  124.                                            break;   
  125.                                    default:   
  126.                                            this.status("返回数据失败,"+this._httpReq.status);   
  127.                                            break;   
  128.                               }   
  129.                               break;   
  130.                    default:   
  131.                            this.readystate = 0;   
  132.                            break;   
  133.              }   
  134.      }   
  135.   
  136.      this.onReadyStateChange = function (){   
  137.             var owner = this;   
  138.             this._httpReq.onreadystatechange = function(){   
  139.                    owner.callbackState.call(owner);   
  140.             }   
  141.      }   
  142.  /*************执行方法结束*****************/  
  143. }  


虽然跟网上有些ajax封装类有些类似,但这个确实是我自己写出来的,虽然写得不是特别好,而且还有些功能还没完善,不过这个js类的确可以用来在小项目使用一些ajax技术时非常方便。欢迎批评!!
分享到:
评论

相关推荐

    自己用的简单封装AJAX类

    - **ajax.js**:这是实际封装的AJAX类的源代码文件,可能是用JavaScript编写的。在这个文件中,我们可以期待看到一个或多个函数,这些函数用于发起异步HTTP请求,处理响应,并可能提供了错误处理和回调函数等机制。 ...

    封装ajax的js类

    封装ajax与servlet通信的js类,欢迎指正

    ajax封装实例代码

    Ajax封装则是将常见的Ajax操作进行模块化处理,方便开发者在项目中快速、高效地实现数据交互。本篇文章将深入探讨Ajax封装实例代码及其相关知识点。 首先,我们来看Ajax的核心原理:通过JavaScript创建...

    自己封装的Ajax类

    1、采用面向对象和JSON封装方式。 2、创建XMLHttpRequest兼容主流浏览器,采用连接池...使用方式可以参考另一资源(javascript访问WebService,js未经封装,但使用方式一样)如有疑问或建议请留言,如有异议请...,谢谢

    JS封装的AJAX函数

    总结来说,AJAX封装函数是将复杂的HTTP请求过程简化为易于调用的函数,使得开发者能够更高效地实现异步通信。在实际开发中,这样的封装是非常常见的,它提高了代码的可读性和复用性,降低了开发难度。对于`right.js`...

    原生js的AJAX封装以及实例展示.zip

    这个压缩包"原生js的AJAX封装以及实例展示.zip"包含了对AJAX的简单封装以及一个具体的增删改查(CRUD)操作实例,这将帮助我们深入理解如何在实际项目中应用AJAX。 首先,让我们了解一下AJAX的基本原理。AJAX的核心...

    web ajax 的使用 js封装

    8. "Util.js":这是一个可能包含实用函数的JavaScript文件,可能包括对AJAX操作的封装,是实际开发中常见的工具类库。 综上所述,学习和掌握AJAX的使用以及JavaScript的类库封装,不仅需要理解JavaScript的基本概念...

    ajaxRequest.js(ajax get post方法封装,方便前端调用)

    封装jquery ajax方法,方便调用,避免在代码中频繁使用 $.ajax({ type: 'GET', url: url, ...... )}; 统一调用公共方法即可,区分同步异步,get post!希望对大家有帮助

    ajax封装.js

    ajax封装.js

    java中对ajax经典封装

    "ajax封装2_files"、"ajax基本封装_files"和"ajax封装3_files"很可能包含了示例代码的HTML、CSS和JavaScript文件。这些文件可能包含用于演示Ajax请求的按钮、表单和结果显示区域,以及处理Ajax响应的JavaScript函数...

    Ajax异步与同步方法封装的js文件

    调用方法:1 将下载好的Ajax js文件引用到页面 代码如下:<script src " js MyAjax js" type "text javascript">< script> 2 调用方法:(1)异步: MyAjax " 要调用的方法...

    纯js封装原生ajax

    纯js封装原生ajax,XMLHttpRequest/ActiveXObject对象封装

    超轻量级好用的js AJAX封装类

    如果是做基于广域网应用的web程序,这个ajax类最合适不过了,ajax功能全,简单好用堪比jquery,最重要的是,它无比轻量级,与jquery、extjs等框架的ajax相比,它小多了,可大大减轻网络传输压力,有效提升web访问...

    JavaScript封装Ajax完整示例代码

    相关文章:https://blog.csdn.net/superwebmaster/article/details/80678590 如有问题,下载文件内含有联系方式,可以一起讨论技术。

    div+css web 对话框+ajax封装js文件

    4. **Ajax封装JS文件**:在实际开发中,为了提高代码复用性和降低复杂度,开发者会将常用的Ajax功能封装到独立的JavaScript文件中。这样,只需调用特定的函数,就可以轻松地发起Ajax请求。封装的JS文件通常包含创建...

    ajax封装函数

    对ajax基础的封装

    ajax封装类

    ### AJAX封装类详解 在现代Web开发中,异步JavaScript和XML(AJAX)技术被广泛应用于构建响应式和交互式的网页应用。AJAX允许在不重新加载整个页面的情况下,与服务器交换数据并更新部分网页内容,从而提升了用户...

    新手练习 Ajax请求封装进JavaScript类

    本文将深入探讨如何将Ajax请求封装进一个JavaScript类,同时关注超时处理、并发请求以及浏览器兼容性问题。 首先,我们来创建一个基础的Ajax类。这个类应该包含初始化方法、发送请求的方法以及处理响应的方法。以下...

    ajax封装类AJAXRequestv0.8.10修正版

    注意:从脚本之家下载的此版本,已经修正了,可以直接使用,不必修改了在写 AJAXRequest v0.8.10 版时,没有在 IE6 下面测试,导致在 IE6 下面出现“XMLHttpRequest未定义”的错误。 可以按如下方法修正,在 ajax...

    uni-app 自己封装的utils.js

    uni-app 自己封装的utils.js 常用工具类(封装的ajax,上传,查看文档,富文本解析)

Global site tag (gtag.js) - Google Analytics