zoukankan      html  css  js  c++  java
  • 封装一个简易的类ajax函数

     1 function resolveData(data) {
     2   // ----------------- 实现方法1-------------
     3   // let arr = [];
     4   // for (const k in data) {
     5   //   const str = `${k}=${data[k]}`;
     6   //   arr.push(str);
     7   // }
     8   //   -------------实现方法-2------------
     9   let arr = Object.keys(data).map((k) => {
    10     // Object.keys(data) 为获取data对象的 属性名  返回一个包含所有属性名的数组
    11     // .map((k) ------------> 将包含属性名的数组 重新处理后  返回一个新数组   形参k为当前的循环项
    12     return `${k}=${data[k]}`; //将结果返回   不要忘记 return
    13   });
    14   return arr.join("&");   //将返回的数组利用join方法拼接为 字符串
    15 }
    16 
    17 function ajndh(options) {
    18   // -----------------------------------
    19   // 创建xhr对象
    20   const xhr = new XMLHttpRequest();
    21   // 把传过来的data 对象 数据  转换为  查询字符串
    22   const qs = resolveData(options.data);
    23   // -------------------------------------------
    24   // 判断请求的类型
    25   if (options.method.toUpperCase() == "GET") {
    26     // 发起get请求 参数在URL后面拼接
    27     xhr.open(options.method, options.url + "?" + qs);
    28     xhr.send();
    29   } else if (options.method.toUpperCase() == "POST") {
    30     // 发起post请求 设置请求的方式 和请求的地址
    31     xhr.open(options.method, options.url);
    32     // 发起post请求要设置 请求头文件
    33     xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    34     // 在send函数中  传送   对象转换后的 查询字符串
    35     xhr.send(qs);
    36   }
    37   // --------------------------------------------
    38   // 监听状态
    39   xhr.onload = function () {
    40     if (this.status == 200) {
    41       // 把服务器响应的JSON数据 转换为 对象类型
    42       const data = JSON.parse(xhr.responseText);
    43       // 手动调用下服务器的成功属性 把data 传过去 以便用户调用
    44       options.success(data);
    45     }
    46   };
    47 }
  • 相关阅读:
    常用公共配置类——定时任务配置
    常用公共工具类——生成token
    常用公共工具类——分页工具类(IPage)
    常用公共工具类——Shiro工具类
    常用公共工具类——Redis工具类
    fmt.sprintf,fprintf区别
    web界面不显示内容排查思路
    golang值传递和引用传递
    web开发
    聊聊crd和list-watch
  • 原文地址:https://www.cnblogs.com/ndh074512/p/14807150.html
Copyright © 2011-2022 走看看