我的编程空间,编程开发者的网络收藏夹
学习永远不晚

ajax网络请求封装的示例分析

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

ajax网络请求封装的示例分析

这篇文章主要为大家展示了“ajax网络请求封装的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“ajax网络请求封装的示例分析”这篇文章吧。

实例代码:

// 封装的ajax网络请求函数
// obj 是一个对象
function AJAX(obj){


    //跨域请求
    if (obj.dataType == "jsonp") {
      //在这里 callback 必须是全局变量 保证函数消失的时候 这个变量不可以被销毁

      //处理一下函数名(防止多个网络请求 函数名字相同 出现紊乱的情况)
      var hehe = "callBack" + "_" + new Date().getTime() + "_" + String(Math.random()).replace(".","");
      window[hehe] = obj.success;
      //创建 script标签
      var sc = document.createElement("script");
      sc.class="lazy" data-src = obj.url + "?" + "cb=" + hehe;
      console.log(sc.class="lazy" data-src);
      document.body.appendChild(sc);
      document.body.removeChild(sc);
      return;
    }

 

 

//1、创建 ajax 对象
  var ajaxObj = null;
  if (window.XMLHttpRequest) {
    ajaxObj = new XMLHttpRequest();
  }else{
    ajaxObj = new ActiveXObject("Microsoft.XMLHTTP");
  }


  //设置请求的类型
  obj.type = obj.type.toUpperCase() || "GET";

  //如果是get请求 并且需要传递参数 则需要给 url 后面拼接参数
  if (obj.type == "GET") {
    var arr = [];//定义数组 用于把对象存储到数据里面
    for (var key in obj.data) {
      arr.push(key +"="+ obj.data[key]);
    }
    //用&分隔数组 让其转化为类似:name=lxl&age=18 的形式
    var str = arr.join("&");
    obj.url = obj.url +"?"+ str;
    //拨号
    ajaxObj.open(obj.type,obj.url,true);


    //发送"name=123&age=18"
    ajaxObj.send();
  }else{
    var arr = [];//定义数组 用于把对象存储到数据里面
    for (var key in obj.data) {
      arr.push(key +"="+ obj.data[key]);
      //console.log(arr);
    }
    //用&分隔数组 让其转化为类似:name=lxl&age=18 的形式
    var str = arr.join("&");
    //console.log(str);
    ajaxObj.open(obj.type,obj.url,true);
    ajaxObj.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    ajaxObj.send(str);
  }



  //监听
  ajaxObj.onreadystatechange = function(){

    if (ajaxObj.readyState == 4) {
      if (ajaxObj.status >= 200 && ajaxObj.status < 300 || ajaxObj.status == 304) {
        //请求成功
        obj.success(ajaxObj.responseText);
      }else{
        //请求失败
        obj.error(ajaxObj.status);
      }
    }

  }

}

以上是“ajax网络请求封装的示例分析”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网行业资讯频道!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

ajax网络请求封装的示例分析

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

fetch网络请求封装示例分析

本篇内容主要讲解“fetch网络请求封装示例分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“fetch网络请求封装示例分析”吧!export default ({ url, method
2023-06-21

Ajax请求的示例分析

这篇文章将为大家详细讲解有关Ajax请求的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、定义1、什么是AjaxAjax:即异步 JavaScript 和XML。Ajax是一种用于创建快速动态网
2023-06-29

Android网络封装的示例分析

这篇文章给大家分享的是有关Android网络封装的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。前言:模拟用户登录,从安卓发送请求到服务端校验,再从服务端返回给安卓校验结果1.在AndroidManife
2023-06-22

vue网络请求方案原生网络请求和js网络请求库的示例分析

这篇文章主要介绍vue网络请求方案原生网络请求和js网络请求库的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、 原生网络请求1. XMLHttpRequest(w3c标准) // 没有promise时
2023-06-21

ajax原始请求的示例分析

这篇文章将为大家详细讲解有关ajax原始请求的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。XMLHttpRequest 对象简介浏览器与服务器之间,采用 HTTP 协议通信。用户在浏览器地址栏键
2023-06-22

vue项目中axios封装请求的示例分析

小编给大家分享一下vue项目中axios封装请求的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!一、简介axios 是一个轻量的HTTP客户端,它基于 XMLHttpRequest 服务来执行 HTTP 请求,支持
2023-06-29

Android Webview拦截ajax请求的示例分析

小编给大家分享一下Android Webview拦截ajax请求的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!Android Webview虽然提供了页面加载及资源请求的钩子,但是对于h6的ajax请求并没有提供
2023-05-30

编程热搜

目录