具体代码如下:

~function(){//ajax:实现ajax请求的公共方法;当一个方法传递的参数过多,而且还不固定,我们使用对象统一传值法(把需要传递的参数值都放在一个对象中,一起传递进去即可)function ajax(options){//把需要使用的参数值设定一个规则和初始值var _default = {url:"",//请求的地址type:"get",//请求的方式dataType:"json",//设置请求回来的内容格式async:true,//请求是同步还是异步data:null,//放在请求主体中的内容(POST)getHead:null,//当READY STATE===2的时候执行的回调方法success:null//当READY STATE===4的时候执行的回调方法
        };//使用用户自己传递进来的值覆盖我们的默认值for(var key in options){if(options.hasOwnProperty(key)){_default[key] = options[key];}}//如果当前的请求方式是get,我们需要在URL的末尾加随机数清楚缓存if(_default.type==="get"){_default.url.indexOf("?") >=0 ? _default.url += "&" : _default.url += "?";_default.url +="_="+Math.random();}//SEND AJAXvar xhr = createXHR();xhr.open(_default.type,_default.url,_default.async);xhr.onreadystatechange = function(){if(/^2\d{2}/.test(xhr.status)){//想要在READY STATE等于2的时候做一些操作,需要保证AJAX是异步请求if(xhr.readyState === 2){if(typeof _default.getHead === "function"){_default.getHead.call(xhr);}}if(xhr.readyState === 4){var val = xhr.responseText;//如果传递的参数值是json,说明获取的内容应该是json格式的对象if(_default.dataType === "json"){val = "JSON" in window ? JSON.parse(val) : eval("("+val+")");}_default.success && _default.success.call(xhr,val)}}}xhr.send(_default.data);}window.ajax = ajax;
}()ajax({url:"data.txt",type:"get",dataType:"json",async:false,getHead:function(){//this xhr当前AJAX对象
    },success:function(data){//this xhr当前AJAX对象//data:我们从服务器获取的主体内容
    }})

转载于:https://www.cnblogs.com/diasa-fly/p/7272363.html

js学习总结----编写简单的ajax方法库相关推荐

  1. ROS学习——2编写简单的发布者和订阅者

    ros官网教程:编写简单的发布者和订阅者 目录 c++版 python版 注意 c++版 在新建好的catkin_ws工作空间下建立. cd catkin_ws/src 在该目录下创建自己的功能包:c ...

  2. Vue.js学习-搭建一个简单的demo

    原创申明:本文为博主原创,转载请注明出处! 这里主要记录vue.js+webpack在一个简单实例中的使用过程 说明:本次搭建基于Win 7平台 Node.js 安装 官网提供了支持多种平台的的LTS ...

  3. python和mt4编程_EA学习教程(MT4编程)MQL4源码 从马丁策略学习如何编写简单的程序...

    马丁全称就是马丁格尔交易策略,据传最初源于十八世纪法国赌场,在被引入金融投机领域后成为百年来最经久不衰的交易策略之一. 在赌场的应用背景下,这个策略其实很简单,比如在一个猜大小的赌局里,每赌只坚定的压 ...

  4. vue 如何生成一个dom元素_通过一个简单的示例学习如何编写Vue组件

    大家好,本篇文章我将带着大家一起学习如何编写自定义组件(Components),通过「vue基础」新手快速入门篇(一)这篇文章的学习,我们知道了 Vue 设计的目的就是为了方便我们创建基于组件UI的项 ...

  5. Vue.js 学习笔记 十二 Vue发起Ajax请求

    首先需要导入vue-resource.js,可以自己下载引入,也可以通过Nuget下载,它依赖于Vue.js. 全局使用方式: Vue.http.get(url,[options]).then(suc ...

  6. 用p5.js编写简单的动态图形——波纹扩散

    用p5.js编写简单的动态图形--波纹扩散 第一次使用p5.js写程序,如有错误请指出,多多指教. 没有下载p5.js的小伙伴可以直接使用网页版的,简单注册一个账号之后就可以保存代码啦. 网站:htt ...

  7. 乘法口诀表python_学习python之编写简单乘法口诀表实现代码

    学习python之编写简单乘法口诀表实现代码 更新时间:2016年02月27日 22:23:30 投稿:mdxy-dxy 这篇文章主要介绍了学习python之编写简单乘法口诀表实现代码,需要的朋友可以 ...

  8. 千锋Node.js学习笔记

    千锋Node.js学习笔记 文章目录 千锋Node.js学习笔记 写在前面 1. 认识Node.js 2. NVM 3. NPM 4. NRM 5. NPX 6. 模块/包与CommonJS 7. 常 ...

  9. Three.js学习笔记 – “我和小伙伴都惊呆了”的特效和Three.js初探

    什么是Three.js three.js是JavaScript编写的WebGL第三方库.提供了非常多的3D显示功能.Three.js 是一款运行在浏览器中的 3D 引擎,你可以用它创建各种三维场景,包 ...

最新文章

  1. 支付宝蚂蚁森林合种树,2-4天领证,1/2号车满员,3号车成立
  2. 智能车大赛AI视觉组培训第一弹——基础篇
  3. 21. Leetcode 203. 移除链表元素 (链表-基础操作类-删除链表的节点)
  4. 【Flask】路由和URL
  5. 会计科目****不能使用(请更正)
  6. ffmpeg源码学习之time_base
  7. SpringSecurity +Jwt 实现权限管理
  8. 【HANA系列】SAP HANA Studio出现Fetching Children...问题
  9. cocos2d-x之物理引擎初试
  10. mysql btree fulltext_Mysql主要索引方式:FULLTEXT,HASH,BTREE,RTREE。
  11. MongoDB aop 日志
  12. 贪心算法(贪婪算法)
  13. 关于服务器等级的正确的是什么,腾讯天龙八部手游服务器等级限制是什么
  14. 买房的疯了-开发商笑不起来了
  15. ROS 之 使用yocs_velocity_smoother对机器人速度进行限制
  16. FPM五:拆解前面的四——OVP做查询和结果
  17. 关于数据清洗的常见方式
  18. 这是新技术时代来临,却始终都无法打开局面的“紧箍咒”
  19. 一名开源工程师的自白
  20. Docker-PS基本命令解析

热门文章

  1. [资源分享] 吴恩达最新《机器学习训练秘籍》中文版可以免费下载了
  2. 序列化与反序列化的简单认识
  3. bzoj2060[USACO2010,Nov]Visiting Cows拜访奶牛
  4. 在Oracle里,表的别名不能用as,列的别名可以用as
  5. poj 4468Spy(kmp算法)
  6. 开发模式下浏览器不支持ES6
  7. Android中1像素Activity进程保活
  8. ORACLE SGA问题分析
  9. Spark 连接 HBase 入库及查询操作
  10. jquery调用WCF