javascript实现简单的ajax封装示例
程序员文章站
2022-11-02 20:25:31
本文实例讲述了javascript实现简单的ajax功能封装。分享给大家供大家参考,具体如下:
function ajax(obj){
var xhr...
本文实例讲述了javascript实现简单的ajax功能封装。分享给大家供大家参考,具体如下:
function ajax(obj){ var xhr = (function (){//获取xhr对象,为了兼容ie6所以进行了重新封装 if(typeof xmlhttprequest !='undefined') { return new xmlhttprequest(); }else if(typeof activexobject !='undefined') { var version = [ 'msxml2.xmlhttp6.0', 'msxml2.xmlhttp3.0', 'msxml2.xmlhttp' ] for(var i in version) { try{ return new activexobject(version[i]); break; }catch(e){ //捕获错误进行然后跳出继续循环 } } }else{ throw new error("您的系统或浏览器不支持xhr对象!"); } })();//获取xhr对象 //默认true开启异步(异步和同步的主要区别是异步在请求的时候后面的脚本可以继续运行,同步的话必须运行完ajax然后才能运行其后面的脚本) if(obj.async === true) { xhr.onreadystatechange = function() { if(xhr.readystate ==4) { callback(xhr.responsetext); } } } var arr=[] ; for(var i in obj.data) {arr.push(encodeuricomponent(i)+'='+encodeuricomponent(obj.data[i]));} obj.data = arr.join('&'); //这一步要注意一下,不管是get/post 方式提交都必须要对传进来的obj.data进行格式化 最后转化成的格式name=zhang&age=26&wedding=no if(obj.method === 'get') {//通过get方式请求的 obj.url = obj.url.indexof('?') ==-1 ? obj.url+'?rand='+math.random()+'&'+obj.data : obj.url+'rand='+math.random()+'&'+obj.data; xhr.open(obj.method,obj.url,obj.async); xhr.send(null); } if(obj.method === 'post') {//通过post方式请求的 obj.url =obj.url+'?rand='+math.random(); xhr.open(obj.method,obj.url,obj.async); xhr.setrequestheader('content-type', 'application/x-www-form-urlencoded');//这是对请求头部的类型重设,post的请求必须要重设; xhr.send(obj.data); } //false开启同步 if(obj.async === false) {callback(xhr.responsetext);} function callback (returntxt) { if(xhr.status == 200){ obj.success(returntxt); }else { alert('获取数据错误!错误代号:' + xhr.status + ',错误信息:' + xhr.statustext); } } }
更多关于javascript相关内容感兴趣的读者可查看本站专题:《javascript中ajax操作技巧总结》、《javascript错误与调试技巧总结》、《javascript数据结构与算法技巧总结》、《javascript遍历算法与技巧总结》及《javascript数学运算用法总结》
希望本文所述对大家javascript程序设计有所帮助。
下一篇: 张乐行:太平天国沃王,最后全家被凌迟
推荐阅读
-
JavaScript中几种排序算法的简单实现
-
javascript - AJAX是怎么样实现异步的呢?
-
JS使用setInterval实现的简单计时器功能示例
-
上传图片预览JS脚本 Input file图片预览的实现示例_javascript技巧
-
CSS3 实现的一个简单的"动态主菜单" 示例[转]_html/css_WEB-ITnose
-
js实现点小图看大图效果的思路及示例代码_javascript技巧
-
iOS 实现简单的加载等待动画示例(思路与实现)
-
JavaScript实现的简单拖拽效果_javascript技巧
-
python实现简单爬虫功能的示例
-
java学习之利用TCP实现的简单聊天示例代码