六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 25|回复: 0

自定义ajax调用功能

[复制链接]

升级  36%

4

主题

4

主题

4

主题

童生

Rank: 1

积分
18
 楼主| 发表于 2013-1-29 08:36:40 | 显示全部楼层 |阅读模式
由于公司未采用任何一套js框架,使用ajax方式调用很是郁闷,就自己搞了个来调用:
var xmlHttpRequest;// 创建XMLHttpRequest对象,在各个浏览器上,该对象的名称及创建方法不一样function createXMLHttpRequest() {var xmlHttp;if (window.XMLHttpRequest) {// Firefox ExprolerxmlHttp = new XMLHttpRequest();/*设置MiME类别**    其作用是:针对某些特定版本的mozillar浏览器的BUG进行修正**    具体来说:如果来自服务器的响应没有 XML mime-type 头部,则一些版本的 Mozilla 浏览器不能正常运行。** 对于这种情况,httpRequest.overrideMimeType('text/xml'); 语句将覆盖发送给服务器的头部,强制 text/xml 作为 mime-type。*/if (xmlHttp.overrideMimeType){xmlHttp.overrideMimeType("text/xml"); }} else if (window.ActiveXObject) {// Internet Exprolertry {xmlHttp =  new ActiveXObject("Msxml2.XMLHTTP");} catch (e) {xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");}}return xmlHttp;};if( typeof window.ZHY == 'undefined') {    ZHY = {};}ZJH = {url:"",//固定全大写,固定将参数转成大写type:"GET",async:true,data:"",//暂时未使用,返回值取纯文本dataType:"text",returnData:null,init:function(obj){if(obj.url == null || typeof obj.url == 'undefined')return false;this.url = obj.url;if(!(obj.type == null || typeof obj.type == 'undefined')){this.type = obj.type.toUpperCase();        }        if(!(obj.async == null || typeof obj.async == 'undefined')){        this.async = obj.async;        }        this.data="";        if(!(obj.data==null || typeof obj.data=='undefined')){                //将json格式数据转换为ajax可以传递参数的格式        for(var key in obj.data){        var param = obj.data[key];        //如果参数是数组,则需要进一步解析        if(Object.prototype.toString.call(param)=="[object Array]"){        for(var value in param){        this.data += "&"+key+"="+value        }        }else this.data += "&"+key+"="+param;        }        if(this.data.length>1)this.data = this.data.substr(1);    }        if(!(obj.success == null || typeof obj.success == 'undefined')){        this.success = obj.success;        }        if(!(obj.error == null || typeof obj.error == 'undefined')){        this.error = obj.error;        }        if(this.type=="GET"){        if(this.data!=""){        this.url += (this.url.indexOf("?")==-1?"?":"&") + this.data;        }        //if(this.url.indexOf("?")==-1)this.url += "?" + this.data;//elsethis.url += "&" + this.data;        }                return true;},    callback : function() {if(xmlHttpRequest.readyState == 4) {if(xmlHttpRequest.status == 200) {var success = ZHY.success;success(xmlHttpRequest.responseText,xmlHttpRequest.status)}else{var error = ZHY.error;error(xmlHttpRequest,xmlHttpRequest.status)}}    },    success : function(data,textStatus){        },    error : function(textStatus, errorThrown){    },    // 发送Ajax请求    /*    **obj对象属性说明如下:    **async:默认true异步传输处理;false为同步处理,将锁住页面,等请求完成后才能继续操作    **url:请求地址,必须指定    **data:请求参数:json格式    **type:发送请求方式:Post/Get,默认Get    **dataType:预期服务器返回的数据类型。默认"text",可选值如下:    **"xml": 返回 XML 文档,可用 jQuery 处理。**"html": 返回纯文本 HTML 信息;包含的script标签会在插入dom时执行。**"script": 返回纯文本 JavaScript 代码。不会自动缓存结果。除非设置了"cache"参数。'''注意:'''在远程请求时(不在同一个域下),所有POST请求都将转为GET请求。(因为将使用DOM的script标签来加载)**"json": 返回 JSON 数据 。**"jsonp": JSONP 格式。使用 JSONP 形式调用函数时,如 "myurl?callback=?" jQuery 将自动替换 ? 为正确的函数名,以执行回调函数。**"text": 返回纯文本字符串    **success:请求成功后的回调函数    **error:请求失败时调用此函数    */    ajax : function(obj) {if(xmlHttpRequest == null || typeof xmlHttpRequest == 'undefined') {          xmlHttpRequest = createXMLHttpRequest();}this.init(obj);        //var url = "/"+Sys_PATH + "/" +Sys_CURDB2+"/agGetTeamInfobyTeam?openagent&key=系统分析与质控组&rnd="+Math.random();        xmlHttpRequest.open(this.type, this.url, this.async); xmlHttpRequest.onreadystatechange = this.callback;        if(this.type=="GET"){        xmlHttpRequest.send(null);}else{//定义传输的文件HTTP头信息  xmlHttpRequest.setRequestHeader("content-length",this.data.length);xmlHttpRequest.setRequestHeader("Content-Type","application/x-www-form-urlencoded");  //发送POST数据  xmlHttpRequest.send(this.data);}    }};
调用方式如下:
ZJH.ajax({url:url,data:{"key":key,"curPage":curPage,"pageSize":pageSize,"rnd":Math.random()},type:"Get",success:function(data){                  }});
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表