网络编程
位置:首页>> 网络编程>> JavaScript>> 原创一个AJAX类

原创一个AJAX类

作者:biyuan 来源:biyuan的专栏 发布时间:2008-07-24 13:29:00 

标签:ajax,类,XMLHTTP

        Ajax类
        Send方法的参数解释:
        Ajax.Send(Url[, Async[, CallFunc[, User[, Pass]]]]);
        Ajax:
                必选项,Ajax对象的一个实例。
        Url:
                必选项,请求的地址。
        Async:
                可选项,为空表示请求模式为GET,为具体参数(如:{key : "postkey", value : "postvalue"})表示请求为POST。
        CallFunc:
                可选项,为空表示同步请求,为一个Function对象时表示异步请求并在Ajax的onreadystatechange事件中调用此函数。
        User:
                可选项,服务器需要验证时此参数为验证需要的用户名。
        Pass:
                可选项,服务器需要验证是此参数为验证需要的密码。
        例子:

        function getSend() {
                if(ajax.xml.readyState == 4 && ajax.xml.status == 200){
                        alert(ajax.xml.responseText);
                }
                else {
                        alert("wait...");
                }
        }
        var PostString = {
                classid : 1,
                search : "无忧脚本"
        }
        var ajax = new Ajax();
        ajax.Send("http://bbs.51js.com/");//GET同步请求,可用ajax.xml.responseText获取返回值
        ajax.Send("http://bbs.51js.com/", false, getSend);//GET异步请求,回调getSend()函数
        ajax.Send("http://bbs.51js.com/", PostString);//POST同步请求,可用ajax.xml.responseText获取返回值
        ajax.Send("http://bbs.51js.com/", PostString, getSend);//POST异步请求,回调getSend()函数

以下为程序代码:

function Ajax() {
        this.xmlObject = function() {
                try { 
                        return new ActiveXObject("Microsoft.XMLHTTP"); 
                }
                catch(e) { 
                        try {
                                return new ActiveXObject("Msxml2.XMLHTTP");
                        }
                        catch(e) { 
                                try { 
                                        return new XMLHttpRequest(); 
                                }
                                catch(e) {
                                        return window.createRequest();
                                } ;
                        };
                };
        };
        this.xml = this.xmlObject();
        this.Send = function() {
                var PostStr = !!arguments[1] ? (function() {
                        var tempArr = new Array();
                        for(var i in arguments.callee.caller.arguments[1]){
                                tempArr.push(i + "=" + arguments.callee.caller.arguments[1][i]);
                        }
                        return tempArr.join("&");
                })() : null;
                this.xml.open(PostStr ? "POST" : "GET", arguments[0], !!arguments[2], arguments[3], arguments[4]);
                !!arguments[2] ? this.xml.onreadystatechange = arguments[2] : null;
                if(PostStr){
                        this.xml.setRequestHeader("Content-Length", PostStr.length); 
                        this.xml.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
                };
                this.xml.send(PostStr);
        };
};
0
投稿

猜你喜欢

  • 最近一直在“深山老林”中修炼“支付宝新版收银台”,经历了白板设计,视觉设计,前端开发,前后端联调各个阶段。点点滴滴……重点谈谈对交互设计的感
  • 有一次去超市换货,本能的找到服务中心,服务中心说这个业务在超市旁边一个房间里,由于忘记带小票,那个小房间的人让我去另外一个小房间调电脑里的记
  • alt的准确含义是,当照片不存在或者load错误时的提示。但同时img也同时支持alt和title,再有某些浏览器的错误解析,因此经常被误导
  • 利用图标工具(有很多)制作图标文件(favicon.ico)上传到网站所在的服务器的根目录下,这个文件必须是16*16大小的图标文件。当然,
  • 1、纯粹的截取字符串function cutstr(thestr1,strlen) dim l,t,c&nbs
  • 昨天在网上看到一个防采集软件,说采集只访问当前网页,不会访问网页的图片、JS等,今天突然想到,通过动态程序和Js访问分别记录访问者的IP,然
  • 阅读作者的上一篇相关文章:段正淳的css笔记(3)标题右侧“更多”的实现 段正淳的css笔记(4)1、css代码的简写css缩写的语法,对新
  • 在使用mysql视图是出现问题: The user specified as a definer ('root'@'
  • 阅读上一篇:AJAX的jQuery实现入门(一)要写入数据库,我们知道的最简单的就是注册了, 就做个最简单的注册表单, 看看是如何提交数据的
  • “你如何为成千上万的用户和页面提供CSS?” 这是Nicole Sullivan在她的在丹佛的Web Directions North 大会
  • 在MySQL数据库中导出整个数据库:1.导出整个数据库mysqldump -u 用户名 -p 数据库名 > 导出的文件名mysqldu
  • 一、 软件介绍 DB2MYSQL是一个可以自动将ACCESS数据库文件转化为对应的SQL代码的软件。可广泛应用于ACCESS数据库转换为MY
  • 先按照下面的表结构创建mysql_order_by_test数据表,我们用实例一点一点告诉你,MySQL order by的用法。ORDER
  • 在默认的情况下,MySQL搜索不区分大小写(但某些字符集始终区分大小写,如czech)。这意味着,如果你使用col_name LIKE &#
  • 现在很多朋友都不止一个账户,不止一个密码。忘记账户名、密码,或账户名、密码输入错误也就难免啦。每当这个时候,你是否和我一样会有小小的焦虑产生
  • 一个日期联动选择器javascript源码,年月日联动显示,准确显示日期(包括闰年日期),可自定义日期范围。 【select】 先说清空一个
  • 在查看Mysql对文件的操作中,它在不同的操作系统上对文件的操作,除了使用标准C运行库函数,包括open、close、seek等,在Win3
  • 阅读上一篇:FrontPage XP设计教程2——网页的编辑 制作一个漂亮的网页,离不开网页整体布局的设计,网页布局设计的合理与否,直接影响
  • 有些朋友看到这个标题可能会有疑问,难道在视图中使用*符号还有何要注意的地方吗?对于这个问题,我们先不必回答,先看一下例子吧。 我这里,使用的
  • 在看到7yue博客——“换手来用”的思考 有这么一句话:RIA是一个更趋向于“体验”设计的领域,不仅仅包括“开发人员”,还包括“设计人员”,
手机版 网络编程 asp之家 www.aspxhome.com