- function ajax(method,synchronous){
- this._httpReq = false; /*ajax初始化对象*/
- this.method = method; /*get|post*/
- this.syn = synchronous; /*是否采用异步请求,默认true*/
- this.url = ""; /*提交异步请求的url地址*/
- this.resType = ""; /*异步请求返回数据类型text|xml*/
- this.callback = ""; /*异步请求完成后的回滚函数*/
- this.loading = ""; /*load函数*/
- this.content = null; /*Ajax中send方法的参数*/
- this.readystate = -1; /*ajax的请求状态*/
- this.state = -1; /*http请求响应代码*/
- /************ get/set方法开始 ***************/
- //设置提交异步请求的url地址
- this.setUrl = function (url){
- this.url = url;
- }
- //设置异步请求返回数据类型text|xml
- this.setResType = function (restype){
- this.resType = restype;
- }
- //设置回滚函数
- this.setCallback = function (func){
- this.callback = func;
- }
- //设置load函数
- this.setLoading = function (loadFunc){
- this.loading = loadFunc;
- }
- //设置send自带的参数值,默认null
- this.setContent = function (contents){
- this.content = contents;
- }
- /*********get/set方法结束*******/
- /*********状态显示方法*********/
- //调用window.alert方法
- this.alert = function (msg){
- window.alert(msg);
- }
- //调用window.status的方法
- this.status = function (msg){
- window.status = msg;
- }
- /*********状态显示方法结束*********/
- /*************执行方法开始*****************/
- //创建HttpXMLRequest
- this.createXMLRequest = function(){
- if(window.XMLHttpRequest){
- this._httpReq = new XMLHttpRequest();
- if(this._httpReq.overrideMimeType){
- this._httpReq.overrideMimeType("text/xml");
- }
- }else if(window.ActiveXObject){
- try{
- this._httpReq = new ActiveXObject("Msxml2.XMLHTTP");
- }catch(e){
- try{
- this._httpReq = new ActiveXObject("Microsoft.XMLHTTP");
- }catch(e){}
- }
- }
- }
- //初始化ajax对象
- this.init = function(){
- this.createXMLRequest();
- }
- //发送一个http请求
- this.send = function (){
- if(this.resType.toLowerCase()=="post"){
- _httpReq.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
- }
- this._httpReq.open(this.method,this.url,this.syn);
- this._httpReq.send(this.content);
- }
- //取消一个http请求
- this.abort = function (){
- this._httpReq.abort();
- }
- this.callbackState = function(){
- switch(this._httpReq.readyState){
- case 0:
- this.readystate = 0;
- break;
- case 1:
- this.readystate = 1;
- break;
- case 2:
- this.readystate = 2;
- break;
- case 3:
- this.readystate = 3;
- break;
- case 4:
- this.readystate = 4;
- switch(this._httpReq.status){
- case 200:
- eval(this.callback);
- break;
- case 202:
- this.status("请求处理中,还没处理完毕!");
- break;
- case 400:
- this.status("错误的请求!");
- break;
- case 404:
- this.status("请求资源未找到!");
- break;
- case 500:
- this.status("内部服务器错误,请联系管理员!");
- break;
- default:
- this.status("返回数据失败,"+this._httpReq.status);
- break;
- }
- break;
- default:
- this.readystate = 0;
- break;
- }
- }
- this.onReadyStateChange = function (){
- var owner = this;
- this._httpReq.onreadystatechange = function(){
- owner.callbackState.call(owner);
- }
- }
- /*************执行方法结束*****************/
- }
ajax封装类
最新推荐文章于 2021-08-05 20:04:29 发布