(function(){
//唯一向外暴露一个顶层变量
var myajax = window.myajax = {};
//作者、版本号信息
myajax.author = "maxwelldu";
myajax.version = "1.0.0"; //这个对象有两个方法,一个get,一个post
myajax.get = function(URL, queryJSON, callback) {
//创建xhr对象,解决兼容性问题
if (window.XMLHttpRequest) {
var xhr = new XMLHttpRequest();
} else {
var xhr = new ActiveXObject('Microsoft.XMLHTTP');
}
//结果返回之后要做的事情
xhr.onreadystatechange = function() {
if (xhr.readyState === xhr.DONE) {
if (xhr.status >= 200 && xhr.status < 300 || xhr.status === 304) {
callback && callback(null, xhr.responseText);
} else {
callback && callback(new Error("没有要请求的文件"), undefined);
}
}
};
//拼接字符串
var queryString = myajax._queryjson2querystring(queryJSON);
//配置
xhr.open('GET', URL + "?" + queryString, true);
//发送
xhr.send(null);  //没有数据发送也要send
} myajax.post = function(URL, queryJSON, callback) {
//创建xhr对象,解决兼容性问题
if (window.XMLHttpRequest) {
var xhr = new XMLHttpRequest();
} else {
var xhr = new ActiveXObject('Microsoft.XMLHTTP');
}
//结果返回之后要做的事情
xhr.onreadystatechange = function() {
if (xhr.readyState === xhr.DONE) {
if (xhr.status >= 200 && xhr.status < 300 || xhr.status === 304) {
callback && callback(null, xhr.responseText);
} else {
callback && callback(new Error("没有要请求的文件"), undefined);
}
}
};
//拼接字符串
var queryString = myajax._queryjson2querystring(queryJSON);
console.log(queryString);
//配置
xhr.open('POST', URL, true);
//发送
xhr.setRequestHeader('Content-Type', "application/x-www-form-urlencoded");
xhr.send(queryString);
} //内部函数,查询json变成查询字符串
//输入一个{"name":"max", "age":18, "sex":"男"}
//返回一个name=max&age=18&sex=%E8%C6%B6
myajax._queryjson2querystring = function(json) {
var arr = [];
for (var k in json) {
arr.push(k + '=' + encodeURIComponent(json[k]));
}
return arr.join('&');
}
})();

 

(function(){
//唯一向外暴露一个顶层变量
var myajax = window.myajax = {};
//作者、版本号信息
myajax.author = "maxwelldu";
myajax.version = "1.0.0";
//这个对象有两个方法,一个get,一个post
myajax.get = function(URL, queryJSON, callback) {
//创建xhr对象,解决兼容性问题
if (window.XMLHttpRequest) {
var xhr = new XMLHttpRequest();
} else {
var xhr = new ActiveXObject('Microsoft.XMLHTTP');
}
//结果返回之后要做的事情
xhr.onreadystatechange = function() {
if (xhr.readyState === xhr.DONE) {
if (xhr.status >= && xhr.status < || xhr.status === ) {
callback && callback(null, xhr.responseText);
} else {
callback && callback(new Error("没有要请求的文件"), undefined);
}
}
};
//拼接字符串
var queryString = myajax._queryjson2querystring(queryJSON);
//配置
xhr.open('GET', URL + "?" + queryString, true);
//发送
xhr.send(null);
}
myajax.post = function(URL, queryJSON, callback) {
//创建xhr对象,解决兼容性问题
if (window.XMLHttpRequest) {
var xhr = new XMLHttpRequest();
} else {
var xhr = new ActiveXObject('Microsoft.XMLHTTP');
}
//结果返回之后要做的事情
xhr.onreadystatechange = function() {
if (xhr.readyState === xhr.DONE) {
if (xhr.status >= && xhr.status < || xhr.status === ) {
callback && callback(null, xhr.responseText);
} else {
callback && callback(new Error("没有要请求的文件"), undefined);
}
}
};
//拼接字符串
var queryString = myajax._queryjson2querystring(queryJSON);
console.log(queryString);
//配置
xhr.open('POST', URL, true);
//发送
xhr.setRequestHeader('Content-Type', "application/x-www-form-urlencoded");
xhr.send(queryString);
}
//内部函数,查询json变成查询字符串
//输入一个{"name":"max", "age":18, "sex":"男"}
//返回一个name=max&age=18&sex=%E8%C6%B6
myajax._queryjson2querystring = function(json) {
var arr = [];
for (var k in json) {
arr.push(k + '=' + encodeURIComponent(json[k]));
}
return arr.join('&');
}
})();

最新文章

  1. Delphi编程时候诡异地出现ORA-00937错误,记录解决它的思路和方法
  2. JavaScript的面向对象编程(OOP)(一)——类
  3. 提交ajax验证用户名是否已存在
  4. js渐隐渐入渐出效果 fadeOut fadeIn
  5. 不等高cell的tableView界面搭建
  6. 面积最大的全1子矩阵--九度OJ 1497
  7. [转载]C#图片格式(JPG,BMP,PNG,GIF)等转换为ICO图标
  8. 《Linux内核设计与实现》学习笔记之“Linux进程管理机制”
  9. for循环遍历字符串的还有一种方法
  10. VS中的快捷键快速格式化代码,使好看,整齐
  11. monkey常用命令实例
  12. selenium + python + nwjs
  13. Hash索引和BTree索引区别【转】
  14. ansible 下lineinfile详细使用
  15. PyCharm 服务器激活地址
  16. Anaconda+MINGW+theano+keras安装
  17. vue keep-alive解决关闭标签动态缓存问题
  18. (6)time&amp;datetime(时间模块)
  19. AJAX.basic
  20. JS 语法大全

热门文章

  1. 手动安装Firefox Linux
  2. 网页页面NULL值对浏览器兼容性的影响
  3. Python随机播放电脑里的音乐
  4. [Qt总结篇]终端远程升级client
  5. Python爬虫开发【第1篇】【Requests】
  6. 【跟我一步一步学Struts2】——登陆样例
  7. lydsy1013: [JSOI2008]球形空间产生器sphere 高斯消元
  8. eventkeyboardmouse
  9. HDU 1517:A Multiplication Game
  10. 并不对劲的[noi2006]网络收费