封装一个通用的ajax请求

2023-11-19

//封装ajax
function useajax(method, url, data, callback, type) {
  //创建兼容对象
  var xhr;
  if (window.XMLHttpRequest) {
    xhr = new XMLHttpRequest();
  } else {
    xhr = new ActiveXObject("Microsoft.XMLHttp");
  }
  xhr.onreadystateChange = function() {
    if (xhr.status == 200 && xhr.readyState == 4) {
      if (type == "json") {
        var res = JSON.parse(xhr.responseText);
      } else if (type == "xml") {
        var res = responseXML;
      } else {
        var res = xhr.responseText;
      }
      callback(res);
    }
  };
    //判断data是否有数据
    var param = '';
    //这里使用stringify方法将js对象格式化为json字符串
    if (JSON.stringify(data) != '{}') {
        url += '?';
        for (var i in data) {
            param += i + '=' + data[i] + '&';   //将js对象重组,拼接成url参数存入param变量中
        }
        //使用slice函数提取一部分字符串,这里主要是为了去除拼接的最后一个&字符
        //slice函数:返回一个新的字符串。包括字符串从 start 开始(包括 start)到 end 结束(不包括 end)为止的所有字符。
        param = param.slice(0, param.length - 1);
    }

    //判断method是否为get
    if (method == "get") {
        //是则将数据拼接在url后面
        url = url + param;
    }
    //初始化请求
    xhr.open(method,url,true);

    if(method == 'post'){
        xhr.setRequestHeader("content-Type","application/x-www-fprm-urlencoded");
        //发送请求
        xhr.send(param)
    }
    else{
        xhr.send(null)
    }
}

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

封装一个通用的ajax请求 的相关文章

随机推荐

  • Markdown基本语法

    Markdown基本语法 一 Markdown了解 二 基本语法 1 各级标题的写法 2 段落 3 字体样式 4 分隔线 5 下划线 6 脚注 7 列表 8 代码块 9 引用 10 图片插入 11 链接 12 表格 三 高级技巧 1 HTM
  • Air Video

    http baike baidu com view 8552809 htm 1 百度首页 登录注册 新闻网页贴吧知道MP3图片视频地图百科文库 帮助 首页 自然 文化 地理 历史 生活 社会 艺术 人物 经济 科技 体育 图片 数字博物馆
  • 翠竹林 Opencv+C++之人脸识别

    最近一直在忙课程 老师让我看看他的论文也没放在心上 总算闲下来 看了他在人脸识别方面的相关论文 拿出一篇放在博客上跟大家共同分析下 在看以下内容前 首先要阅读下徐勇老师的这篇论文 A Two Phase Test Sample Sparse
  • Python Timer定时器

    Timer是在threading模块下的 Thread类的派生类 它用于在指定时间后调用一个方法 Timer的构造方法 Timer interval func args kwargs interval 用于设置等待时间 func 要执行的函
  • node-npm 设置淘宝镜像

    1 安装 cnpm 淘宝镜像 npm install g cnpm registry https registry npm taobao org 2 将npm设置为淘宝镜像 npm config set registry https reg
  • swift项目桥接通过cocoapods pod下来的第三方oc文件引入不成功

    最近想试着开始写学着swift项目了 然后就在用cocoapods pod下来的第三方框架的时候出现了问题 先以为是自己创建桥接文件后 配置出错了 但是网上的那些文章都还是能把桥接文件处理好 言归正传 先上图 pod的文件和桥接header
  • 你与小程序开发的距离有多远?

    你与小程序开发的距离有多远 2017年1月9日凌晨 小程序正式发布 对焦10年前iPhone的发布时间 产品之神张小龙显然是想让这一天具有十分重要的历史意义 小程序发布之后 它终于揭开了最终面目 我们不得不承认 这一天 必定是一个新时代的开
  • Java的多态

    一 多态的概念 多态性是指同一操作或方法可以在不同的对象上具有不同的行为 它允许我们通过使用基类或接口类型的引用变量来调用子类或实现类的方法 二 多态的作用 多态性是面向对象编程中的一个重要概念 它可以让我们以一种统一的方式处理不同类型的对
  • Eureka初启动报错:{@org.springframework.beans.factory.annotation.Qualifier(value=httpTraceFilter)}

    学习Eureka时启动报错 之前写服务者消费者接口未报错 到启动Eureka时才发现有误 启动Eureka时报错 信息提示是 Dependency annotations org springframework beans factory
  • 合并所有重叠的区间,并返回 一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间

    以数组 intervals 表示若干个区间的集合 其中单个区间为 intervals i starti endi 请你合并所有重叠的区间 并返回 一个不重叠的区间数组 该数组需恰好覆盖输入中的所有区间 示例 输入 intervals 1 3
  • nginx 反向代理到另一个nginx并在另一个ngixn上面做转发

    目录 一 背景 二 步骤 三 问题总结 一 背景 近期部署项目时遇到一个问题 由阿里云解析到一个公网iP 由该公网ip的nginx进行转发 但转发时 该项目为前后端分离 需要解析到远程服务器的xxx目录 这通过一个nginx转发不好解决 通
  • Linux 开发环境搭建与使用——SlickEdit 的安装与配置

    SlickEdit 的介绍 vim 是公认很好用很完美 但是对新手来说 上手毕竟不是很容易 Windows 下程序员很多都很喜欢Source Insight 这个工具来看代码 各种语法高亮看着很舒服 那在 Linux 平台下 有没有媲美 S
  • ICPC-TOOLs resolver滚榜单工具使用指南

    0 引言 上周突然临危受命 学校ACM社团要举办校内迎新赛 想要使用滚榜功能让揭晓结果变得更加刺激 奈何本人不打ACM 一开始连滚榜都不知道 苦笑 jpg 不过还是跌跌撞撞把功能实现了 介于网络上这方面的教程实在是凤毛麟角 我就把自己的经验
  • vscode远程ssh隧道连接linux服务器并配置conda环境调试python过程【保姆级教程】

    引言 为了彻底摆脱无界面不支持调试的xshell vscode是一款强大的神器 通过与远程服务器建立连接 可以做到远程debug和开发环境的搭建 非常好用 前期准备 vscode一枚 远程服务器用户名 IP 密码 1 本地vscode下载拓
  • python随机森林 交叉验证_随机森林算法详解及Python实现

    一 简介 随机森林是一种比较有名的集成学习方法 属于集成学习算法中弱学习器之间不存在依赖的一部分 其因为这个优点可以并行化运行 因此随机森林在一些大赛中往往是首要选择的模型 随机森立中随机是核心 通过随机的选择样本和选择特征 降低了决策树之
  • NDIS网络数据监控程序NDISMonitor(1)-----驱动程序(编译过程与源码讲解)

    转载请标明是引用于 http blog csdn net chenyujing1234 欢迎大家拍砖 一 编译过程 弄了半天终于编译通过了 看来驱动的开发确实没有应用来得简单啊 由于DDK提供的ndis h有4个 什么时候要调用哪个我确实不
  • 解析几何 曲线与二次曲面 直纹面(2.4)

    一 直纹面 二 单叶双曲面 1 直母线的性质 定理1 单叶双曲面是直纹面 且过单叶双曲面上任1点 恰有2条不同的直母线 定理2 单叶双曲面 S S S上的2条直母线 L 1
  • AIGC专栏2——Stable Diffusion结构解析-以文本生成图像(文生图,txt2img)为例

    AIGC专栏2 Stable Diffusion结构解析 以文本生成图像 文生图 txt2img 为例 学习前言 源码下载地址 网络构建 一 什么是Stable Diffusion SD 二 Stable Diffusion的组成 三 生成
  • 光盘文件导入服务器,web服务器 光盘文件

    web服务器 光盘文件 内容精选 换一换 ISO是一种光盘映像文件 通过特定的压缩方式 将大量的数据文件统一为一个后缀名为iso的映像文件 ISO文件可以理解为从光盘中复制出来的数据文件 所以ISO文件无法直接使用 需要利用一些工具进行解压
  • 封装一个通用的ajax请求

    封装ajax function useajax method url data callback type 创建兼容对象 var xhr if window XMLHttpRequest xhr new XMLHttpRequest els