• 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 }
  • 相关阅读:
    openSUSE 13.1 Milestone 4 发布
    Neo4j 2.0 M4 发布
    iBoxDB for .NET v1.5发布, 移动NoSQL数据库
    GNU libc (Glibc) 2.18 发布
    Android 开源项目维护者宣布退出
    Jeasyframe 开源框架 稳定版 V1.5 发布
    Spring Mobile 1.1.0.RC1 和 1.0.2 发布
    Deis logo 开源PaaS系统 Deis
    EasyCriteria 3.0 发布
    TypeScript 0.9.1 发布,新增 typeof 关键字
  • 原文地址:https://www.cnblogs.com/xiaoyuanding/p/3926020.html
Copyright © 2020-2023  润新知