AJAX封装实例
2013-07-17 14:39
218 查看
因为浏览器之间的不兼容,IE7之前的版本并没有原生的XMLHttpRequest对象却实现为ActiveX对象。
互联网及各种书籍中有着多种创建方式,有的复杂很多行代码,有的则简洁很少代码。当然复杂的考虑的情形更多一些。如下几乎将IE中所有的情况都考虑到了
1 | var xhr = window.XMLHttpRequest ?new XMLHttpRequest() :new ActiveXObject('Microsoft.XMLHTTP'); |
1 2 | xhr.open xhr.send |
1 2 3 4 5 6 7 | xhr.onreadystatechange =function(){ if(xhr.readyState == 4){ if(xhr.status == 200){//当然你可以把200~300之间或304的都理解成响应成功 //callback } } } |
function ajax(method,url,data,async,hander200,loading,hander404,hander500){ var request = null; if(window.XMLHttpRequest){ request = new XMLHttpRequest(); }else if(window.ActiveXObject){ request = new ActiveXObject("Microsoft.XMLHTTP"); } request.onreadystatechange=function(){ if(4==request.readyState){ if(200==request.status){ if(hander200){ hander200(request); } }else if(404==request.status){ if(hander404){ hander404(); } }else if(500==request.status){ if(hander500){ hander500(); } } }else{ if(loading){ loading(); } } } if("get"==method.toLowerCase()){ if(data==null||data==""){ request.open("get",url,async); }else{ request.open("get",url+"?"+data,async); } request.send(null); }else if("post"==method.toLowerCase()){ request.open("post",url,async); request.setRequestHeader("content-Type","application/x-www-form-urlencoded"); request.send(data); } }
相关文章推荐
- 基于ajax和jsonp的原生封装(实例)
- react中的ajax封装实例详解
- 关于ajax网络请求的封装实例
- 使用原生js封装的ajax实例(兼容jsonp)
- 用原生JS对AJAX做简单封装的实例代码
- vue-ajax小封装实例
- 收藏网站制作常用经典ajax.prototype.javascript实例打包下载javascript
- strus+ajax实例--用户注册(2)
- Pushlet2.0.4源码分析及实例(iframe流 + ajax轮询)
- jQuery封装的Ajax方法
- jQuery Ajax 实例 ($.ajax、$.post、$.get)
- ajax调用简单实例
- 用ajax.net封装的不间断marquee行为
- Ajax 经典实例
- jquery封装ajax的post请求
- Spring Security4实例(Java config版)——ajax登录,自定义验证
- Android工作笔记之okHttp,Xutils等框架的2次封装实例
- HotHeart写的Ajax类使用实例
- Ajax-Ajax基础实例
- Structs2+Ajax(登陆+验证码实例)