源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

一个方便AJAX开发的通用类

  • 时间:2021-10-05 20:14 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:一个方便AJAX开发的通用类
Name: AJAXRequest Author: HotHeart(xujiwei) Site: http://www.xujiwei.cn/ Blog: http://www.xujiwei.cn/blog/ Copyright (c) 2006, All Rights Reserved 类名:AJAXRequest 版本:0.3 日期:2006-12-18 介绍:AJAXRequest是一个方便AJAX开发的通用类,可以方便地进行一些AJAX中需要的操作,从而简化开发步骤,减少重复代码编写量。 创建方法: var ajaxobj=new AJAXRequest([url],[callback],[content],[method],[async]); 如果创建失败则返回false 属性: url       - 请求URL,字符串,默认为空 callback  - 回调函数,即返回响应内容时调用的函数,默认为直接返回,回调函数有一个参数为XMLHttpRequest对象,即定义回调函数时要这样:function mycallback(xmlobj) content   - 请求的内容,如果请求方法为POST需要设定此属性,默认为空字符串 method    - 请求方法,字符串,POST或者GET,默认为POST async      - 是否异步,true为异步,false为同步,默认为true 方法 function send([url],[callback],[content],[method],[async]) 发送请求,可选参数列表为空就使用对象属性 function get([url],[callback]) 使用GET方法请求一个URL,可选参数默认使用对象属性 function post(form_obj,[callback],[url],[method]) 发送一个表单到指定URL,form_obj为指定表单对象,可选参数为空时使用对象属性 示例: 1. get方法 function test1() {     var ajax=new AJAXRequest;     ajax.get(         "test.asp",         function(obj) {             document.getElementById("test1").value=obj.responseText;         }     ); } 2. post方法 function test2() {     var ajax=new AJAXRequest;     ajax.post(         document.getElementById("test2c"),         function(obj) {             document.getElementById("test2r").innerHTML=obj.responseText;         }     ); }
[u]复制代码[/u] 代码如下:
/*------------------------------------------ Author: xujiwei Website: http://www.xujiwei.cn E-mail: vipxjw@163.com Copyright (c) 2006, All Rights Reserved ------------------------------------------*/ function AJAXRequest() {     var xmlObj = false;     var CBfunc,ObjSelf;     ObjSelf=this;     try { xmlObj=new XMLHttpRequest; }     catch(e) {         try { xmlObj=new ActiveXObject("MSXML2.XMLHTTP"); }         catch(e2) {             try { xmlObj=new ActiveXObject("Microsoft.XMLHTTP"); }             catch(e3) { xmlObj=false; }         }     }     if (!xmlObj) return false;     if(arguments[0]) this.url=arguments[0]; else this.url="";     if(arguments[1]) this.callback=arguments[1]; else this.callback=function(obj){return};     if(arguments[2]) this.content=arguments[2]; else this.content="";     if(arguments[3]) this.method=arguments[3]; else this.method="POST";     if(arguments[4]) this.async=arguments[4]; else this.async=true;     this.send=function() {         var purl,pcbf,pc,pm,pa;         if(arguments[0]) purl=arguments[0]; else purl=this.url;         if(arguments[1]) pc=arguments[1]; else pc=this.content;         if(arguments[2]) pcbf=arguments[2]; else pcbf=this.callback;         if(arguments[3]) pm=arguments[3]; else pm=this.method;         if(arguments[4]) pa=arguments[4]; else pa=this.async;         if(!pm||!purl||!pa) return false;         xmlObj.open (pm, purl, pa);         if(pm=="POST") xmlObj.setRequestHeader("Content-Type","application/x-www-form-urlencoded");         xmlObj.onreadystatechange=function() {             if(xmlObj.readyState==4) {                 if(xmlObj.status==200) {                     pcbf(xmlObj);                 }                 else {                     pcbf(null);                 }             }         }         if(pm=="POST")             xmlObj.send(pc);         else             xmlObj.send("");     }     this.get=function() {         var purl,pcbf;         if(arguments[0]) purl=arguments[0]; else purl=this.url;         if(arguments[1]) pcbf=arguments[1]; else pcbf=this.callback;         if(!purl&&!pcbf) return false;         this.send(purl,"",pcbf,"GET",true);     }     this.post=function() {         var fo,pcbf,purl,pc,pm;         if(arguments[0]) fo=arguments[0]; else return false;         if(arguments[1]) pcbf=arguments[1]; else pcbf=this.callback;         if(arguments[2])             purl=arguments[2];         else if(fo.action)             purl=fo.action;         else             purl=this.url;         if(arguments[3])             pm=arguments[3];         else if(fo.method)             pm=fo.method.toLowerCase();         else             pm="post";         if(!pcbf&&!purl) return false;         pc=this.formToStr(fo);         if(!pc) return false;         if(pm) {             if(pm=="post")                 this.send(purl,pc,pcbf,"POST",true);             else                 if(purl.indexOf("?")>0)                     this.send(purl+"&"+pc,"",pcbf,"GET",true);                 else                     this.send(purl+"?"+pc,"",pcbf,"GET",true);         }         else             this.send(purl,pc,pcbf,"POST",true);     }     // formToStr     // from SurfChen <surfchen@gmail.com>     // @url     http://www.surfchen.org/     // @license http://www.gnu.org/licenses/gpl.html GPL     // modified by xujiwei     // @url     http://www.xujiwei.cn/     this.formToStr=function(fc) {         var i,query_string="",and="";         for(i=0;i<fc.length;i++) {             e=fc[i];             if (e.name!='') {                 if (e.type=='select-one') {                     element_value=e.options[e.selectedIndex].value;                 }                 else if (e.type=='checkbox' || e.type=='radio') {                     if (e.checked==false) {                         continue;                         }                     element_value=e.value;                 }                 else {                     element_value=e.value;                 }                 element_value=encodeURIComponent(element_value);                 query_string+=and+e.name+'='+element_value;                 and="&";             }         }         return query_string;     } }
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部