美文网首页
原生JavaScript封装的ajax方法示例

原生JavaScript封装的ajax方法示例

作者: 88b61f4ab233 | 来源:发表于2018-12-31 21:11 被阅读8次

    众所周知,框架之间会有冲突,这是源生js就起到作用了,下面介绍一种源生js封装的ajax请求。

    function ajax(options) {
      options = options || {};
      options.type = (options.type || "GET").toUpperCase();
      options.dataType = options.dataType || "json";
      var params = formatParams(options.data);
      //创建xhr对象 - 非IE6
      if (window.XMLHttpRequest) {
        var xhr = new XMLHttpRequest();
      } else { //IE6及其以下版本浏览器
        var xhr = new ActiveXObject('Microsoft.XMLHTTP');
      }
      //GET POST 两种请求方式
      if (options.type == "GET") {
        xhr.open("GET", options.url + "?" + params, true);
        xhr.send(null);
      } else if (options.type == "POST") {
        xhr.open("POST", options.url, true);
        //设置表单提交时的内容类型
        xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
        xhr.send(params);
      }
      //接收
      xhr.onreadystatechange = function () {
        if (xhr.readyState == 4) {
          var status = xhr.status;
          if (status >= 200 && status < 300) {
            options.success && options.success(xhr.responseText);
          } else {
            options.fail && options.fail(status);
          }
        }
      }
    }
    //格式化参数
    function formatParams(data) {
      var arr = [];
      for (var name in data) {
        arr.push(encodeURIComponent(name) + "=" + encodeURIComponent(data[name]));
      }
      arr.push(("v=" + Math.random()).replace(".",""));
      return arr.join("&");
    }
    

    调用方法

    ajax({
      url: "data.json",
      type: "GET",
      data: {},
      dataType: "json",
      success: function (response) {
        // 此处放成功后执行的代码
         // 解析返回的字符串 转为json对象
        var usingdata = eval("("+response+")").data;
      }
      fail: function (status) {
        // 此处放失败后执行的代码
      }
    });
    

    最后

    为了帮助大家让学习变得轻松、高效,给大家免费分享一大批资料,帮助大家在成为全栈工程师,乃至架构师的路上披荆斩棘。在这里给大家推荐一个前端全栈学习交流圈:866109386.欢迎大家进群交流讨论,学习交流,共同进步。

    当真正开始学习的时候难免不知道从哪入手,导致效率低下影响继续学习的信心。

    但最重要的是不知道哪些技术需要重点掌握,学习时频繁踩坑,最终浪费大量时间,所以有有效资源还是很有必要的。

    最后祝福所有遇到瓶疾且不知道怎么办的前端程序员们,祝福大家在往后的工作与面试中一切顺利。

    相关文章

      网友评论

          本文标题:原生JavaScript封装的ajax方法示例

          本文链接:https://www.haomeiwen.com/subject/qggwlqtx.html