zoukankan      html  css  js  c++  java
  • AjaxHelper的get和post请求的封装类

          最近在学习ajax的时候发现不断的调用get和post请求时,代码重复很多,有的公司会用自带的封装的方法,这个可以直接调用ajax的方法,但是在运用的时候我们也应该学习它是怎么封装的和一些原理性的东西,Ajax技术在很多网站的开发都会用到,异步刷新大大提高了网站的性能。ajax的请求我们归结了五部曲,下面是我自己通过查找资料和学习总结的ajax的get和post请求的封装类。

    代码:

     1 var ajaxHelper = {
     2     //1.得到异步对象
     3     GetXhr: function () {
     4         var xhr;
     5         if (window.XMLHttpRequest) {
     6            //兼容新式浏览器
     7             xhr = new XMLHttpRequest();
     8         } else { //兼容IE老式浏览器
     9             xhr = new ActiveXObject("Microsoft.XMLHTTP");
    10         }
    11         //返回异步对象
    12         return xhr;
    13     },
    14     //2.定义get请求
    15     ajaxGet: function (url, callback) {
    16         this.ajaxComm("get", url, null, callback);
    17     },
    18     //3.定义post请求
    19     ajaxPost: function (url,params,callback) {
    20         this.ajaxComm("post",url,params,callback);
    21     },
    22     //4.公共请求方法
    23    //method:get,post
    24    //url:需要发送的请求地址
    25    //parms:发送给服务器的数据,post的时候才有值,get为null
    26    //callbakc:请求成功以后的回调函数
    27     ajaxComm: function (method, url, params, callbakc) {
    28         //1.0创建异步对象
    29         var xhr = this.GetXhr();
    30         //2.0设置请求的参数
    31         xhr.open(method, url, params, callbakc);
    32         //3.0防止缓存
    33         if (method == "get") {
    34             xhr.setRequestHeader("If-Modified-Since", "0");
    35         } else {
    36             xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    37         }
    38         //4.0设置回调函数
    39         xhr.onreadystatechange = function () {
    40             if(xhr.readyState==4&&xhr.status==200){
    41                 var objdata = xhr.responseText;
    42                 var data = JSON.parse(objdata);
    43                 //执行业务逻辑
    44                 callbakc(data);
    45             }
    46         }
    47         //5.0发送请求
    48         xhr.send(params);
    49 
    50     }
    51 }
  • 相关阅读:
    aul 学习测试(测量)
    ubuntu12.04下一个samba、tftp、nfs构造
    Linux互斥和同步应用程序(一):posix线程和线程之间的相互排斥
    Cocos2d-x加速度计
    事务处理和并发控制
    【通过做专题研习Android】知识点:SharedPreferences
    数据结构 --- 单人名单
    安德鲁斯 建立与各种听众自己定义的ScrollView
    【iOS开展-94】xcode6如何使用GIT以及如何添加太老项目GIT特征?
    2013年第35周一
  • 原文地址:https://www.cnblogs.com/xiaoyuanding/p/3926020.html
Copyright © 2011-2022 走看看