原生js封装的ajax方法示例
本文实例讲述了原生js封装的ajax方法。分享给大家供大家参考,具体如下:
众所周知,框架之间会有冲突,这是源生js就起到作用了,下面介绍一种源生js封装的ajax请求。
functionajax(options){ options=options||{}; options.type=(options.type||"GET").toUpperCase(); options.dataType=options.dataType||"json"; varparams=formatParams(options.data); //创建xhr对象-非IE6 if(window.XMLHttpRequest){ varxhr=newXMLHttpRequest(); }else{//IE6及其以下版本浏览器 varxhr=newActiveXObject('Microsoft.XMLHTTP'); } //GETPOST两种请求方式 if(options.type=="GET"){ xhr.open("GET",options.url+"?"+params,true); xhr.send(null); }elseif(options.type=="POST"){ xhr.open("POST",options.url,true); //设置表单提交时的内容类型 xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); xhr.send(params); } //接收 xhr.onreadystatechange=function(){ if(xhr.readyState==4){ varstatus=xhr.status; if(status>=200&&status<300){ options.success&&options.success(xhr.responseText); }else{ options.fail&&options.fail(status); } } } } //格式化参数 functionformatParams(data){ vararr=[]; for(varnameindata){ arr.push(encodeURIComponent(name)+"="+encodeURIComponent(data[name])); } arr.push(("v="+Math.random()).replace(".","")); returnarr.join("&"); }
调用方法
ajax({ url:"data.json", type:"GET", data:{}, dataType:"json", success:function(response){ //此处放成功后执行的代码 //解析返回的字符串转为json对象 varusingdata=eval("("+response+")").data; } fail:function(status){ //此处放失败后执行的代码 } });
更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《JavaScript中ajax操作技巧总结》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》及《JavaScript数学运算用法总结》
希望本文所述对大家JavaScript程序设计有所帮助。