zoukankan      html  css  js  c++  java
  • JavaScript(十四)经典的Ajax

    (function(){
      //唯一向外暴露一个顶层变量
      var myajax = window.myajax = {};
      //作者、版本号信息
      myajax.author = "maxwelldu";
      myajax.version = "1.0.0";
    
      //这个对象有两个方法,一个get,一个post
      myajax.get = function(URL, queryJSON, callback) {
        //创建xhr对象,解决兼容性问题
        if (window.XMLHttpRequest) {
          var xhr = new XMLHttpRequest();
        } else {
          var xhr = new ActiveXObject('Microsoft.XMLHTTP');
        }
        //结果返回之后要做的事情
        xhr.onreadystatechange = function() {
          if (xhr.readyState === xhr.DONE) {
            if (xhr.status >= 200 && xhr.status < 300 || xhr.status === 304) {
              callback && callback(null, xhr.responseText);
            } else {
              callback && callback(new Error("没有要请求的文件"), undefined);
            }
          }
        };
        //拼接字符串
        var queryString = myajax._queryjson2querystring(queryJSON);
        //配置
        xhr.open('GET', URL + "?" + queryString, true);
        //发送
        xhr.send(null);  //没有数据发送也要send
      }
    
      myajax.post = function(URL, queryJSON, callback) {
        //创建xhr对象,解决兼容性问题
        if (window.XMLHttpRequest) {
          var xhr = new XMLHttpRequest();
        } else {
          var xhr = new ActiveXObject('Microsoft.XMLHTTP');
        }
        //结果返回之后要做的事情
        xhr.onreadystatechange = function() {
          if (xhr.readyState === xhr.DONE) {
            if (xhr.status >= 200 && xhr.status < 300 || xhr.status === 304) {
              callback && callback(null, xhr.responseText);
            } else {
              callback && callback(new Error("没有要请求的文件"), undefined);
            }
          }
        };
        //拼接字符串
        var queryString = myajax._queryjson2querystring(queryJSON);
        console.log(queryString);
        //配置
        xhr.open('POST', URL, true);
        //发送
        xhr.setRequestHeader('Content-Type', "application/x-www-form-urlencoded");
        xhr.send(queryString);
      }
    
    
    
      //内部函数,查询json变成查询字符串
      //输入一个{"name":"max", "age":18, "sex":"男"}
      //返回一个name=max&age=18&sex=%E8%C6%B6
      myajax._queryjson2querystring = function(json) {
        var arr = [];
        for (var k in json) {
          arr.push(k + '=' + encodeURIComponent(json[k]));
        }
        return arr.join('&');
      }
    })();

     

    (function(){
    //唯一向外暴露一个顶层变量
    var myajax = window.myajax = {};
    //作者、版本号信息
    myajax.author = "maxwelldu";
    myajax.version = "1.0.0";

    //这个对象有两个方法,一个get,一个post
    myajax.get = function(URL, queryJSON, callback) {
    //创建xhr对象,解决兼容性问题
    if (window.XMLHttpRequest) {
    var xhr = new XMLHttpRequest();
    } else {
    var xhr = new ActiveXObject('Microsoft.XMLHTTP');
    }
    //结果返回之后要做的事情
    xhr.onreadystatechange = function() {
    if (xhr.readyState === xhr.DONE) {
    if (xhr.status >= 200 && xhr.status < 300 || xhr.status === 304) {
    callback && callback(null, xhr.responseText);
    } else {
    callback && callback(new Error("没有要请求的文件"), undefined);
    }
    }
    };
    //拼接字符串
    var queryString = myajax._queryjson2querystring(queryJSON);
    //配置
    xhr.open('GET', URL + "?" + queryString, true);
    //发送
    xhr.send(null);
    }

    myajax.post = function(URL, queryJSON, callback) {
    //创建xhr对象,解决兼容性问题
    if (window.XMLHttpRequest) {
    var xhr = new XMLHttpRequest();
    } else {
    var xhr = new ActiveXObject('Microsoft.XMLHTTP');
    }
    //结果返回之后要做的事情
    xhr.onreadystatechange = function() {
    if (xhr.readyState === xhr.DONE) {
    if (xhr.status >= 200 && xhr.status < 300 || xhr.status === 304) {
    callback && callback(null, xhr.responseText);
    } else {
    callback && callback(new Error("没有要请求的文件"), undefined);
    }
    }
    };
    //拼接字符串
    var queryString = myajax._queryjson2querystring(queryJSON);
    console.log(queryString);
    //配置
    xhr.open('POST', URL, true);
    //发送
    xhr.setRequestHeader('Content-Type', "application/x-www-form-urlencoded");
    xhr.send(queryString);
    }



    //内部函数,查询json变成查询字符串
    //输入一个{"name":"max", "age":18, "sex":"男"}
    //返回一个name=max&age=18&sex=%E8%C6%B6
    myajax._queryjson2querystring = function(json) {
    var arr = [];
    for (var k in json) {
    arr.push(k + '=' + encodeURIComponent(json[k]));
    }
    return arr.join('&');
    }
    })();
  • 相关阅读:
    IE浏览器中Image对象onload失效的解决办法
    jquery.lazyload 实现图片延迟加载jquery插件
    在JS方法中返回多个值的三种方法
    遭遇input与button按钮背景图失效不显示的解决办法
    jquery:validate的例子
    JavaScript toLowerCase() 方法 把字符串转换为小写
    Linux下的MySQL简单操作(服务启动与关闭、启动与关闭、查看版本)
    phpcms-v9视频模型的添加
    Linux下如何查看tomcat是否启动
    margin-top无效的问题解决方法
  • 原文地址:https://www.cnblogs.com/96weibin/p/8531435.html
Copyright © 2011-2022 走看看