还在为需要ajax而导入jquery吗? 纯js封装ajax操作
2015-05-13 00:00
507 查看
文件名:SydAjax.js
1 /** 2 * @desc javascript Ajax 3 * @parameter opt 4 * @parameter string opt.type post/get, 5 * @parameter string opt.url 6 * @parameter string opt.data or json object 7 * @parameter function opt.success 8 * @parameter function opt.error 9 * @author Sydney 10 * @date 2013年6月3日 11 */ 12 var SydAjax = { 13 ajax:function(opt){ 14 var xhr = this.createXhrObject(); 15 xhr.onreadystatechange = function(){ 16 if(xhr.readyState!=4) return ; 17 (xhr.status===200 ? 18 opt.success(xhr.responseText,xhr.responseXML): 19 opt.error(xhr.responseText,xhr.status)); 20 } 21 xhr.open(opt.type,opt.url,true); 22 if(opt.type!=='post') 23 opt.data=null; 24 else 25 xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); 26 opt.data = this.parseQuery(opt.data); 27 xhr.send(opt.data); 28 }, 29 post:function(url,success,data){ 30 var popt = { 31 url:url, 32 type:'post', 33 data:data, 34 success:success, 35 error:function(data){} 36 } 37 this.ajax(popt); 38 }, 39 get:function(url,success){ 40 var gopt = { 41 url:url, 42 type:'get', 43 success:success, 44 error:function(){} 45 } 46 this.ajax(gopt); 47 }, 48 createXhrObject:function(){ 49 var methods = [ 50 function(){ return new XMLHttpRequest();}, 51 function(){ return new ActiveXObject('Msxml2.XMLHTTP');}, 52 function(){ return new ActiveXObject('Microsoft.XMLHTTP');} 53 ]; 54 for(var i=0;len=methods.length,i<len;i++){ 55 try{ 56 methods[i](); 57 }catch(e){ 58 continue; 59 } 60 this.createXhrObject = methods[i]; 61 return methods[i](); 62 } 63 throw new Error('Could not create an XHR object.'); 64 }, 65 parseQuery:function(json){ 66 if(typeof json == 'object'){ 67 var str = ''; 68 for(var i in json){ 69 str += "&"+i+"="+encodeURIComponent(json[i]); 70 } 71 return str.length==0 ? str : str.substring(1); 72 }else{ 73 return json; 74 } 75 } 76 };
相关文章推荐
- 还在为需要ajax而导入jquery吗? 纯js封装ajax操作
- 对Jquery中的ajax再封装,简化操作
- SpringMvc+POI 处理Excel的导入操作(一般form提交和jquery.form.js提交)
- Asp.net 更改Alert样式和后台注册Jquery的Ajax异步提交事件[包括处理前操作、处理后操作(注明:此方法只是作为参考,如有需要可自行修改)]
- AJAX提交表单后要清空,否则再次提交原来的数据会认为重复提交,提交失败。使用ajaxSubmit 函数需要引入jquery.form.min.js 文件
- jQuery对AJAX操作的封装
- 原生js实现对Ajax的封装(模仿jquery)
- 对Jquery中的ajax再封装,简化操作示例
- jQuery对AJAX操作的封装——$.post
- js封装获取标签处理操作 ,ajax,ready()方法
- js(jquery)与ajax结合实现无刷新操作
- Js操作Cookie,保持页面刷新(需要用到jquery.js文件)
- 不借助jquery封装好的ajax,你能用js手写ajax框架吗
- 打造自己的js库1 -- ajax操作的封装
- JQuery对AJAX操作的封装
- 一般操作需要导入的jquery包(jquery.js包)和 jquery操作select下拉列表(取值及设置选中某一个option)
- 对Jquery中的ajax再封装,简化操作示例
- 原生js实现对Ajax的封装(仿jquery)
- jQuery Ajax通用js封装
- 对Jquery中的ajax再封装,简化操作