ajax(Asynchronous JavaScript and XML) 封装

2 篇文章 0 订阅
2 篇文章 0 订阅

ajax原理:浏览器调用XHR — 浏览器继续执行 — XHR向服务器发送请求 — 服务器返回数据给XHR — XHR向浏览器通知结果 — 浏览器获取数据渲染页面

const baseUrl = "https://xxxxxx.xxxxxx.cn";
function ajax(parameters) {
  parameters.method = parameters.method.toUpperCase();
  parameters.url = baseUrl + parameters.url;
  let ajaxObj;
  //1.创建XMLHttpRequest实例对象(IE7开始支持XMLHttpRequest,可不做兼容)
  if (window.XMLHttpRequest) {
    ajaxObj = new XMLHttpRequest();
  } else {
    ajaxObj = new ActiveXObject("Microsoft.XMLHTTP"); //(默认版本的XMLHTTP,XMLHTTP主要用来传输数据)
  }

  //2.调用open方法设置基本请求信息
  ajaxObj.open(parameters.method, parameters.url, true); //(GET/POST/PUT/DELETE,url,是否异步)

  //设置请求头
  //ajaxObj.setRequestHeader("token", "8fc1f353-a677-4051-8cb9-25fb83b2a40a"); //(属性的名称,属性的值)

  //3.设置发送的数据,发送请求
  ajaxObj.send(parameters.data); //(请求参数)

  //4.注册监听的回调函数,接收请求
  ajaxObj.onreadystatechange = function () {
    //0 = 代理被创建,但尚未调用 open() 方法
    //1 = open() 方法已经被调用,可以通过setRequestHeader()设置请求头
    //2 = send() 方法已经被调用,并且响应头可获得
    //3 = 接收中
    //4 = 接收完成
    if (ajaxObj.readyState == 4) {
      if (ajaxObj.status == 200) {
        //5.调用回到函数,返回数据,更新页面
        parameters.success(JSON.parse(ajaxObj.responseText));
      } else {
        parameters.error();
      }
    }
  };
}
//调用
// ajax({
//     method,
//     url,
//     data,
//     success(res) {},
//     error(){}
// });
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值