【原生Ajax的封装】简单易理解

这篇博客详细介绍了如何封装Ajax请求,包括GET和POST两种方式,以及如何处理请求参数和响应数据。通过创建XMLHttpRequest对象,设置请求头,处理请求状态,实现了数据的异步交互。同时,文章强调了错误处理和数据格式化的重要性。
摘要由CSDN通过智能技术生成

第一步、先确定调用接口所需的参数

 // 确定调用需要的参数
 ajax({
   method: "get" || "post",
   url: "",
   data: "",
   type: "application/json" || "application/x-www-form-urlencoded",
   success: function (result) {
     console.log(result);
   },
   error: function (result) {
     console.log(result);
   }
 })

第二步、封装Ajax请求,判断请求类型,并作出相应的逻辑操作

function ajax(options) {
  // 1.创建XMLHttpRequest对象
  var xhr = new XMLHttpRequest();
  // 2.连接服务器发送请求
  //   判断请求类型
  if (options.method.toLowerCase() == "get") {
    // 初始化一个参数
    let params = "";
    // 遍历传过来的对象,键和值用"="相连,键值对用"&"相连,组成一个字符串
    for (var key in options.data) {
      params += key + "=" + options.data[key] + "&";
    }
    // 在由传过来的对象组成的字符串前加"?",以便拼接在url传递参数
    params = "?" + params.slice(0, -1);
    // 把参数拼接到url后面,发起open连接
    xhr.open("GET", options.url + params);
    xhr.send(null);
  } else if (options.method.toLowerCase() == "post") {
    // 发起open连接
    xhr.open("POST", options.url);
    // 设置请求头
    xhr.setRequestHeader("Content-type", options.type);
    // 把传过来的数据对象,转为JSON字符串
    xhr.send(JSON.stringify(options.data));
  }
  xhr.onreadystatechange = function () {
    if (xhr.readyState == 4) {
      if (xhr.status == 200) {
        // 如果请求成功,把数据转成对象,传给成功的回调函数
        options.success(JSON.parse(xhr.response));
      } else {
        options.error(xhr);
      }
    }
  };
}

大功告成!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值