美文网首页
原生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.欢迎大家进群交流讨论,学习交流,共同进步。

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

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

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

相关文章

  • ajax总结

    1. Ajax 1.1 原生JavaScript封装Ajax 1.2 jquery ajax 及其 快捷方法 $....

  • 原生JavaScript封装的ajax方法示例

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

  • 用原生JS封装类jQuery的ajax方法

    前言:为了深入理解jQuery中的ajax方法,本文通过使用原生JavaScript来封装一个类似的方法,能实现最...

  • Ajax的使用方法

    Ajax 一、 javaScript原生使用Ajax 1.get方法 2.post方法 open()方法后面的参数...

  • 原生javascript封装ajax

    原文见martin的博客 最近重新看《javascript高级程序设计》,突然看到了ajax,想起来之前学习的各种...

  • 原生javascript ajax封装

    function ajax(opt) { opt = opt || {}; opt.method = opt....

  • JavaScript 原生封装 ajax

    与UE4客户端联调,因安全原因把网页所需文件放入客户端项目中,不想引入外部文件以及json库。自己封装一个ajax...

  • AJAX请求

    原生JavaScript中的AJAX请求 AJAX = Asynchronous JavaScript and X...

  • ajax封装

    原生ajax封装

  • javascript四种ajax方法

    javascript要实现ajax,目前有四种方法 原生XMLHttpRequest方法 原生太麻烦,所以有很多库...

网友评论

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

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