当前位置: 首页 > news >正文

javascript - 封装ajax

封装,使用有示例.

 1     // 封装示例:
 2     function ajax(url, method, params, done) {
 3       var xhr = null;
 4       method = method.toUpperCase();
 5       xhr = window.XMLHttpRequest ? xhr = window.XMLHttpRequest : xhr = new ActiveXObject('Microsoft.XMLHTTP');
 6 
 7       if (typeof params === 'object') {
 8         var tempArr = [];
 9         for (var key in params) {
10           var value = params[key];
11           tempArr.push(key + '=' + value);
12         }
13         params = tempArr.join('&');
14       }
15 
16       // GET
17       if (method === 'GET') {
18         url += '?' + params;
19       }
20       xhr.open(method, url, false);
21 
22       // POST
23       var data = null;
24       if (method === 'POST') {
25         xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
26         data = params;
27       }
28 
29       xhr.onreadystatechange = function () {
30         if (this.readyState !== 4 && this.status !== 200) return false;
31         ongone(this.responseText);
32       }
33       xhr.send(data);
34     }
35 
36 
37     // 调用示例:ajax('get','test.php',{id:123,},ongone)
38     ajax('GET', 'test.php', {}, ongone);
39 
40     var ongone = function (res) {
41       console.log('1');
42       console.log('2');
43       console.log(res);
44       console.log('gone!');
45     }

 

相关文章:

  • 一例exchange DAG 成员服务器添加数据库副本的错误
  • UI设计能力质变方法论 - 设计师, 请理解什么是组件
  • 【MyBatis】缓存配置
  • HTTP协议初步认识
  • 联想启天M715E安装硬盘保护系统和网络同传
  • 通过全备+binlog_server同步恢复被drop的库或表
  • 围观测评题(1)
  • t-sql对被除数为0除数小于被除数结果为0除法保留2位小数的处理
  • 自动化运维之Ansible服务部署
  • 并发下线程池的最佳数量计算
  • SpringMVC+MYBatis企业应用实战笔记
  • HTML5本地存储使用详解
  • 95后博士入职达摩院,14岁上大学,成阿里史上最年轻科学家
  • [Node.js]连接mongodb
  • 数据分析——四种大数据分析方法
  • 【干货分享】SpringCloud微服务架构分布式组件如何共享session对象
  • CentOS从零开始部署Nodejs项目
  • Idea+maven+scala构建包并在spark on yarn 运行
  • JavaScript-Array类型
  • js写一个简单的选项卡
  • leetcode-27. Remove Element
  • overflow: hidden IE7无效
  • Python - 闭包Closure
  • redis学习笔记(三):列表、集合、有序集合
  • SegmentFault 技术周刊 Vol.27 - Git 学习宝典:程序员走江湖必备
  • 服务器之间,相同帐号,实现免密钥登录
  • 如何进阶一名有竞争力的程序员?
  • 写代码的正确姿势
  • CMake 入门1/5:基于阿里云 ECS搭建体验环境
  • Salesforce和SAP Netweaver里数据库表的元数据设计
  • # Java NIO(一)FileChannel
  • #!/usr/bin/python与#!/usr/bin/env python的区别
  • #中的引用型是什么意识_Java中四种引用有什么区别以及应用场景
  • $.each()与$(selector).each()
  • (bean配置类的注解开发)学习Spring的第十三天
  • (day 12)JavaScript学习笔记(数组3)
  • (附源码)springboot青少年公共卫生教育平台 毕业设计 643214
  • (南京观海微电子)——COF介绍
  • (实战)静默dbca安装创建数据库 --参数说明+举例
  • (一)硬件制作--从零开始自制linux掌上电脑(F1C200S) <嵌入式项目>
  • (已更新)关于Visual Studio 2019安装时VS installer无法下载文件,进度条为0,显示网络有问题的解决办法
  • (转)Java socket中关闭IO流后,发生什么事?(以关闭输出流为例) .
  • ./mysql.server: 没有那个文件或目录_Linux下安装MySQL出现“ls: /var/lib/mysql/*.pid: 没有那个文件或目录”...
  • .Net Framework 4.x 程序到底运行在哪个 CLR 版本之上
  • .net 微服务 服务保护 自动重试 Polly
  • .NET/C# 在代码中测量代码执行耗时的建议(比较系统性能计数器和系统时间)
  • .Net的DataSet直接与SQL2005交互
  • ?php echo $logosrc[0];?,如何在一行中显示logo和标题?
  • @GetMapping和@RequestMapping的区别
  • @RequestParam,@RequestBody和@PathVariable 区别
  • [BZOJ2281][SDOI2011]黑白棋(K-Nim博弈)
  • [C#]科学计数法(scientific notation)显示为正常数字
  • [Excel VBA]单元格区域引用方式的小结
  • [HDU]2161Primes
  • [Labtools 27-1429] XML parser encountered a problem in file