封装一个通用的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请求 的相关文章

  • 强制ajax调用清除缓存

    我有一个 cms 可以在其中更改对象的位置 每次位置更改后 ajax 调用都会更新整个对象列表 但不幸的是 一些数据存储在缓存中 并且没有可见的更改 有没有办法用 javascript request other 强制清除缓存 我尝试过 缓
  • 如何根据所选类别隐藏 Django 表单中的字段?

    我需要确保当您添加新广告时 选择一个类别 隐藏表单中不必要的字段 我明白这是用JS做的 但暂时不太明白 所以我告诉你是否有人擅长 例如 我希望在选择 房屋和土地 时 舞台 消失 上市型号 class Listing models Model
  • 如何将变量从 JavaScript 传递到 PHP?

    我正在使用 jQuery 来计算价格 这是我的 JavaScript 的一小段 Prices radio var curLam gloss input name lamination click function var gloss 5 v
  • 在ajax上下文中使flask中的会话过期

    我在用permanent session lifetime在一段时间不活动后使用户会话过期 问题是 这个请求是通过 ajax 发出的 所以我无法在 ajax 上下文中以 Flask 的正常行为进行重定向 http xxxx login ne
  • .ajax() 等价于 .load() 是什么?

    我正在使用 ajax 请求从服务器检索文本字符串 我尝试使用 load 但问题是它在运行我的回调函数 它只是逐个字母地显示文本 之前将文本注入到页面中 因此 为了缓解这种情况 我已转向 ajax 并在成功回调中使用我的函数 这对于逐个字母地
  • Rails *已完成 406 不可接受”在生产中..在暂存中工作

    我遇到了一个错误 已完成 406 不可接受 在生产服务器中 而在登台服务器中我没有面对 相同的代码在暂存中工作正常 但在生产中无法工作 两个环境都安装了相同的 gem 我使用的是 Rails 版本 3 0 10 在我的生产环境中 GET 请
  • 两个 $.post 请求一个接一个。第二个 $.post 请求未执行

    我有一个 javascript 函数 其中有两个 post 请求 两个 post 请求都应该被执行 但有时 第二个 post 请求不会被执行 这可能是什么原因 post 是 ajax 结构的缩写形式 我通常更喜欢使用 ajax 结构因为 更
  • 我创建了一个对话框,现在如何关闭它?

    我在下面添加了一个指向我网站的链接 用于查看头部部分中的 JS 并让您了解我是如何设置这一切的 如果您不想使用该链接 我也会尝试添加下面的代码 我最近在我网站的某些页面上学习了一些基本的 AJAX我创建了一个对话框 您将看到它出现在滚动条上
  • 使用 javascript 而非 jQuery 的简单 ajax 表单

    我正在使用一个表单 其标记我无法更改且无法使用 jQuery 目前 该表单将结果发布到新窗口 是否可以将其更改为 ajax 表单 以便在提交时显示结果而不更改任何标记 将结果 标记 从结果页面拉回到表单页面 这是表单的标记
  • onchange 使用 radioChoice 获取当前值

    我尝试使用 radioChoice onChange 从无线电表单中获取选定的值 但似乎无法真正找到解决方案 onEvent 函数被调用 但从这里我不太确定如何获取该值 Code RadioChoice
  • 为什么我收到此错误:“未捕获类型错误:无法读取未定义的属性“标题””?

    我正在尝试写一个ajax网络应用程序 我有一个函数应该请求一个json对象 然后使用它来重新 填充网站 这里是JavaScript有问题 第 8 16 行 window onload LoadData Home var doc functi
  • 如何从ajax调用php函数?

    我熟悉如何让ajax转到php页面并执行一系列操作然后返回json数据 但是 是否可以调用驻留在给定页面中的特定函数 基本上我想要的是减少项目中的文件数量 所以我可以把很多常用的函数放在一个页面中 然后只调用我现在想要的任何函数 对于 AJ
  • MVC:如何使用ajax?

    我将使用 Zend Framework MVC 实现启动一个项目 我如何使用ajax 我的意思是 我应该将所有 ajax 代码放入控制器中吗 还是进入视野 例如 我想将作者 ivan 的帖子显示在页面上 通常 我创建一个指向 posts a
  • 未捕获的类型错误:无法读取未定义的属性“toLowerCase”

    我收到此错误 它源自 jquery 框架 当我尝试加载准备好的文档上的选择列表时 出现此错误 我似乎无法找到为什么会出现此错误 它适用于更改事件 但在尝试手动执行该函数时出现错误 未捕获的类型错误 无法读取未定义的属性 toLowerCas
  • 如何在 jquery 中使 ajax 数据键动态化?

    我试图使内联编辑成为动态的 因此它只依赖于我的标记中的一些数据属性 所以现在的代码如下 inline edit editable function value settings var editableField this ajax typ
  • Wicket:并发 Ajax 请求仅限于一个?

    情况 在我的 Wicket 应用程序中 我有一个包含两个标签的页面 每次选择一个选项卡时 都会通过 Ajax 获取其内容 以便每次切换到不同的选项卡时 都会从服务器新鲜加载其内容 在其中一个选项卡上 我有一个输入字段 其中有一个 onblu
  • CORS 在 jquery 中工作正常,但在 angularjs 中不行

    我的服务器端是php mysql 我正在另一个域的 Web 服务中进行 Ajax 调用 其中启用了 的访问控制 var postUrl http logical brains com elance clone test login php
  • 第三个下拉菜单不从数据库填充

    我有以下 Index php
  • 表单发布请求并存储收到的数据

    我有一个非常简单的表单 在提交时发出发布请求
  • Ajax 调用诸如 'for (;;); 之类的响应是什么? { json 数据 }' 是什么意思? [复制]

    这个问题在这里已经有答案了 可能的重复 为什么人们会写这样的代码 throw 1 和 for 在 json 响应前面 https stackoverflow com questions 3146798 why do people put c

随机推荐

  • 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