1. //Ajax 方法封装
  2. //设置数据格式
  3. function setData(data){
  4. if(!data){
  5. return '';
  6. }
  7. else{
  8. var arr = [];
  9. for(k in data){
  10. if(!data.hasOwnProperty(k)) continue;
  11. if(typeof data[k] == 'function') continue;
  12. var value = data[k].toString();
  13. var key = encodeURIComponent(k);
  14. value = encodeURIComponent(value);
  15. arr.push(key + '=' + value);
  16. }
  17. return arr.join('&');
  18. }
  19. }
  20. //get()方法封装
  21. function get(url,obj,callback){
  22. var xhr = null;
  23. if(window.XMLHttpRequest){
  24. xhr = new XMLHttpRequest();
  25. }
  26. else{
  27. xhr = new ActiveXObject('Microsoft.XMLHTTP');
  28. }
  29. url = url + '?'+ setData(obj);
  30. xhr.open('get',url,true);
  31. xhr.onreadystatechange = function(){
  32. if(xhr.readyState == 4){
  33. if(xhr.status == 200){
  34. callback(xhr.responseText);
  35. }
  36. }
  37. }
  38. xhr.send(null);
  39. }
  40.  
  41. //post()方法封装
  42. function post(url,obj,callback){
  43. var xhr = null;
  44. var postBody = setData(obj);
  45. if(window.XMLHttpRequest){
  46. xhr = new XMLHttpRequest();
  47. }
  48. else{
  49. xhr = new ActiveXObject('Microsoft.XMLHTTP');
  50. }
  51. xhr.open('post',url,true);
  52. xhr.setRequestHeader('Content-type','application/x-www-form-urlencoded');
  53. xhr.onreadystatechange = function(){
  54. if(xhr.readyState == 4){
  55. if(xhr.status == 200){
  56. callback(xhr.responseText);
  57. }
  58. }
  59. }
  60. xhr.send(postBody);
  61. }

【前端学习笔记04】JavaScript数据通信Ajax方法封装的更多相关文章

  1. 前端学习笔记汇总(之merge方法)

    学习笔记 关于Jquery的merge方法 话不多说,先上图 使用jquery时,其智能提示如上,大概意思就是合并first和second两个数组,得到的结果是first+(second去重后的结果) ...

  2. Web前端学习笔记之JavaScript、jQuery、AJAX、JSON的区别

    官网的英文解释: javascript和jQuery有点关系,js是一种脚本语言,主要用于客户端,现在主要用于实现一些网页效果. jquery是js的一个库,你可以认为是对js的补充,提供了很多方便易 ...

  3. 前端学习笔记之JavaScript

    JavaScript概述 JavaScript的历史 1992年Nombas开发出C-minus-minus(C--)的嵌入式脚本语言(最初绑定在CEnvi软件中),后将其改名ScriptEase(客 ...

  4. 【前端学习笔记】JavaScript 常用方法兼容性封装

    获取样式函数封装 function getStyle(ele,attr){ if(ele.currentStyle){ return ele.currentStyle[attr]; } else{ r ...

  5. 【前端学习笔记】JavaScript 小案例合集

    获取一个0-9的随机数: Math.round(Math.random()*9); 去除数组中重复的元素: var arr=[1,3,5,4,3,3,1,4] function editArr(arr ...

  6. 【前端学习笔记】JavaScript JSON对象相关操作

    //JSON方法 //JSON.parse(); var json = '{"name":"zj","age":23}'; JSON.par ...

  7. 【前端学习笔记】2015-09-02 附~~~~~ajax简单请求和获得响应结果

    首先得创建一个请求XMLHttpRequest对象,var  xmlhttp=window.XMLHttpRequest?new XMLHttpRequest() : new ActiveXObjec ...

  8. 【前端学习笔记】2015-09-01 附 split()方法、readyState

    1.split():作用对象是一个字符串或者字符串对象,会要求设置两个参数(分割点(separator),分割出来的数量(number)),ps:1."2:3:4:5".split ...

  9. Java程序猿的JavaScript学习笔记(9—— jQuery工具方法)

    计划按例如以下顺序完毕这篇笔记: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaScript ...

随机推荐

  1. 2017-2018-1 20155306 20155315 《信息安全技术》实验二、Windows口令破解

    在网络界,攻击事件发生的频率越来越高,其中相当多的都是由于网站密码泄露的缘故,或是人为因素导致,或是口令遭到破解,所以从某种角度而言,密码的安全问题不仅仅是技术上的问题,更主要的是人的安全意识问题. ...

  2. POI导出excel文件样式

    需求: 公司业务和银行挂钩,各种形式的数据之间交互性比较强,这就涉及到了存储形式之间的转换 比如数据库数据与excel文件之间的转换 解决: 我目前使用过的是POI转换数据库和文件之间的数据,下边上代 ...

  3. JavaScript之数组的常用操作函数

    js对数组的操作非常频繁,但是每次用到的时候都会被搞混,都需要去查相关API,感觉这样很浪费时间.为了加深印象,所以整理一下对数组的相关操作. 常用的函数 concat() 连接两个或更多的数组,并返 ...

  4. python字符串、列表、字典的常用方法

    一.python字符串的处理方法 >>> str = ' linzhong LongXIA ' >>> str.upper() #字符串str全部大写 ' LINZ ...

  5. log4net始终占用日志文件的问题

    在appender 下面加 <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />

  6. Centos7使用yum安装MySQL5.6的正确姿势

    centos自带的repo是不会自动更新每个软件的最新版本,所以无法通过yum方式安装MySQL的高级版本. 所以,即使使劲用yum -y install mysql mysql-server mys ...

  7. C#之#if #endif的简单用法

    有时候我们看到别人的代码中有#if #endif,其实这是通过不同版本来选择运行哪段代码,和咱们的if,else是一样的.下面看下简单的用法 #if DEBUG txt_display.Text = ...

  8. 牛客小白月赛9 A签到(分数取模,逆元)

    传送门 对分母求一下逆元,把除法取模变成乘法取模,逆元介绍看这里 这种方法只适合模为质数的情况 #include<bits/stdc++.h> using namespace std; ; ...

  9. 【SpringCloud】第十一篇: 断路器监控(Hystrix Dashboard)

    前言: 必需学会SpringBoot基础知识 简介: spring cloud 为开发人员提供了快速构建分布式系统的一些工具,包括配置管理.服务发现.断路器.路由.微代理.事件总线.全局锁.决策竞选. ...

  10. idea compare功能 之一次bug修复

    一次bug修复 最近开发完了一套单点系统,jenkins打包上传到服务器就出问题, 可以启动但是不能正常工作. 首先想到的是环境不一样, 于是把jenkins的jdk和maven都调整和本机大版本相同 ...