原生JavaScript封装Ajax
来源:互联网 发布:淘宝开网店指导靠谱吗 编辑:程序博客网 时间:2024/05/21 08:39
更多原创博文欢迎本人独立技术博客:蓝克比尔
Ajax的实现主要分为四部分:
1、创建Ajax对象
var xhr=null;if(window.XMLHttpRequest){ xhr=newXMLHttpRequest();}else{ //为了兼容IE6 xhr=newActiveXObject('Microsoft.XMLHTTP');}
2、连接服务器
// 连接服务器open(方法GET/POST,请求地址, 异步传输)xhr.open('GET', 'data.txt', true);
3、发送请求
// 发送请求xhr.send();
4、接收返回数据
// 处理返回数据/*** 每当readyState改变时,就会触发onreadystatechange事件** readyState属性存储有XMLHttpRequest的状态信息** 0 :请求未初始化** 1 :服务器连接已建立** 2 :请求已接受** 3 : 请求处理中** 4 :请求已完成,且相应就绪*/xhr.onreadystatechange=function(){ if(xhr.readyState==4){ /* ** Http状态码 ** 1xx :信息展示 ** 2xx :成功 ** 3xx :重定向 ** 4xx : 客户端错误 ** 5xx :服务器端错误 */ if(xhr.status==200){ success(xhr.responseText); }else{ if(failed){ failed(xhr.status); } } }}
Ajax封装函数:
functionAjax(type,url,data,success,failed){ // 创建ajax对象 varxhr=null; if(window.XMLHttpRequest){ xhr=newXMLHttpRequest(); }else{ xhr=newActiveXObject('Microsoft.XMLHTTP') } vartype=type.toUpperCase(); // 用于清除缓存 varrandom=Math.random(); if(typeofdata=='object'){ varstr=''; for(varkeyindata){ str+=key+'='+data[key]+'&'; } data=str.replace(/&$/,''); } if(type=='GET'){ if(data){ xhr.open('GET',url+'?'+data,true); }else{ xhr.open('GET',url+'?t='+random,true); } xhr.send(); }elseif(type=='POST'){ xhr.open('POST',url,true); // 如果需要像 html 表单那样 POST 数据,请使用 setRequestHeader() 来添加 http 头。 xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded"); xhr.send(data); } // 处理返回数据 xhr.onreadystatechange=function(){ if(xhr.readyState==4){ if(xhr.status==200){ success(xhr.responseText); }else{ if(failed){ failed(xhr.status); } } } }} // 测试调用varsendData={name:'asher',sex:'male'};Ajax('get','data/data.html',sendData,function(data){ console.log(data);},function(error){ console.log(error);});
更多原创博文欢迎本人独立技术博客:蓝克比尔
- 原生JavaScript封装Ajax
- 原生JavaScript封装ajax
- Javascript封装原生ajax请求
- ajax 异步封装-函数 javascript原生
- 用原生javascript封装ajax技术
- 原生JavaScript封装ajax,可以直接使用
- 原生js封装Ajax
- 封装原生ajax
- 原生封装ajax
- 封装的原生ajax
- 原生 ajax 封装
- 原生js封装ajax
- 原生封装ajax
- 原生ajax的封装
- 原生JS封装Ajax
- Ajax原生封装
- 原生JS封装ajax()
- 原生JavaScript封装的ajax提交表单form
- 8088汇编指令表
- RequestDispatcher的使用
- poj 3159 Candies(差分约束 spfa stack实现)
- HDFS读写数据过程
- hdu1688 什么都不说了, 自己还是太水
- 原生JavaScript封装Ajax
- 云计算的基础架构IAAS PAAS SAAS 关系
- 四种方法实现VC枚举系统当前进程
- 数据库开发之【ASP.NET页面级别的事务】
- 数字图像处理,BMP图像操作( biWidth*biBitCount+31)/32*4
- java中的lock和synchronized区别是什么
- 将低版本的项目转换到VS2010后“无法启动程序”的问题
- 学习泛型方法的两个小心得
- Qt下使用OpenCV捕获摄像头