`
lan13217
  • 浏览: 499424 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

Ajax类

    博客分类:
  • Ajax
阅读更多
http://www.cnblogs.com/qiantuwuliang/archive/2009/07/21/1527502.html
RIA知识库
flex
RIA

/*
Ajax 类
sUrl : 目标 URL
sQueryString : 提交变量
callbackFunc : 回调函数
callbackParams : 回调函数参数
sRecvType : 返回值格式 ( 0: 文本, 1: XML );
*/

function Ajax ( sUrl, sQueryString, callbackFunc, callbackParams, sRecvType )
{
    this.Url = sUrl;
    this.QueryString = sQueryString != null ? sQueryString : '';
    this.response; // 返回值

    this.XmlHttp = this.createXMLHttpRequest ();
    if ( this.XmlHttp == null )
    {
        alert ( "网络连接出错, 请重试!" );
        return;
    }
    var objxml = this.XmlHttp;
    objxml.onreadystatechange = function ()
    {
        Ajax.handleStateChange ( objxml, sRecvType, callbackFunc, callbackParams )
    }
}

Ajax.prototype.createXMLHttpRequest = function ()
{
    try
    {
        return new ActiveXObject ( "Msxml2.XMLHTTP" );
    }catch(e) {}

    try
    {
        return new ActiveXObject ( "Microsoft.XMLHTTP" );
    } catch(e) {}

    try
    {
        return new XMLHttpRequest ();
    } catch(e) {}

    return null;
}

Ajax.prototype.createQueryString = function ()
{
    var queryString = '';
    if ( this.QueryString != null && typeof ( this.QueryString ) != 'string' )
    {
        var elements = this.QueryString.elements;
        var pairs = new Array();
        for(var i=0;i<elements.length;i++){
            if((name=elements[i].name)&&(value = elements[i].value)){
                pairs.push(name + "=" + encodeURIComponent(value));
            }
        }
        queryString = pairs.join ("&");
    }
    else
    {
        queryString = this.QueryString;
    }
    return queryString;
}

Ajax.prototype.get = function ()
{
    sUrl = this.Url;
    var queryString = sUrl + ( sUrl.indexOf ('?') > 0 ? '&' : '?' ) + this.createQueryString();
    this.XmlHttp.open ( "GET", queryString, true );
    this.XmlHttp.send ( null );
}

Ajax.prototype.post = function ()
{
    var sUrl = this.Url;
    var queryString = this.createQueryString ();
    this.XmlHttp.open ( "POST", sUrl, true );
    this.XmlHttp.setRequestHeader ( "Content-Type","application/x-www-form-urlencoded" );
    this.XmlHttp.send ( queryString );
}

Ajax.handleStateChange = function ( XmlHttp, sRecvType, callbackFunc, callbackParams )
{
    if ( XmlHttp.readyState == 4 )
    {
        if ( XmlHttp.status == 200  )
        {
            Response = sRecvType ? XmlHttp.responseXML : XmlHttp.responseText;
            if ( callbackFunc != null )
            {
                callbackFunc ( Response, callbackParams );
            }
        }
        else
        {
            // alert ( "您还没有登陆或者登陆已经超时, 请登陆后重试!" );
        }
    }
} 



分享到:
评论

相关推荐

    自己用的简单封装AJAX类

    **标题解析:** "自己用的简单封装AJAX类" 指的是作者为了个人使用需求,编写了一个简化的AJAX处理类。AJAX(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术,...

    php无刷新简便超实用的ajax类附带实例

    表单元素如输入框、按钮等可以与JavaScript事件监听器结合,当用户触发特定事件(如点击按钮)时,JavaScript会捕获该事件并调用之前提到的Ajax类,发起异步请求。例如,当用户提交表单时,可以使用jQuery库的`$....

    源代码-AJAX类,调用方式类似jQuery.zip

    【标题】中的“源代码-AJAX类,调用方式类似jQuery”暗示了这是一个关于JavaScript编程的资源,特别是与AJAX(异步JavaScript和XML)技术相关,而且其设计风格和使用方法受到了jQuery库的启发。在AJAX的帮助下,...

    一个好用的ajax类

    这个“一个好用的ajax类”似乎提供了一个简化版的JavaScript实现,帮助开发者更方便地使用Ajax。 在JavaScript中,Ajax通常通过XMLHttpRequest对象来实现,但自定义的Ajax类可以封装这些细节,提供更加友好的API。`...

    ASP源码—AJAX类,调用方式类似jQuery.zip

    在给定的压缩包“ASP源码—AJAX类,调用方式类似jQuery.zip”中,我们可以推测它包含了一个ASP源代码实现,该实现可能是一个自定义的AJAX库,设计风格和使用方式与广泛流行的jQuery库相似。 AJAX(Asynchronous ...

    自己封装的Ajax类

    3、封装了访问Ajax和WebService的API。WebService兼容SOAP1.1和SOAP1.2 4、该资源为作者本人劳动成果。使用方式可以参考另一资源(javascript访问WebService,js未经封装,但使用方式一样)如有疑问或建议请留言,如有...

    ajax分类file,put

    ajax类,有file,put解释!

    简单的Ajax类文件

    我自己写的一个Ajax类文件,是 BoroAjax.js 使用起来非常方便,比如: /****** new defBoroAjax( "server.asp", "id=Ajax", "post", $ajax("in") ).run(); *******/ 就可以实现以post方式发出的请求...

    基于ASP的AJAX类,调用方式类似jQuery.zip

    这个压缩包“基于ASP的AJAX类,调用方式类似jQuery.zip”显然是一个包含ASP与AJAX技术结合的代码库,其设计目的是为了让ASP开发者能够更方便地在服务器端实现异步数据交互,同时保持前端用户体验的流畅性,类似于...

    AJAX类,AJAX

    一个很好的AJAX类,用起来很简单。请大家及时下载

    我写的一个JS AJAX 类

    我写的一个JS AJAX 类 ajax.rar ajax 中文说明和用法实例! /** * Ajax对象 * function functionName(){if(myAjax.name.readyState == 4

    ASP实例开发源码-艾恩AJAX类,调用方式类似jQuery.zip

    ASP实例开发源码—艾恩AJAX类,调用方式类似jQuery.zip ASP实例开发源码—艾恩AJAX类,调用方式类似jQuery.zip ASP实例开发源码—艾恩AJAX类,调用方式类似jQuery.zip

    简单Ajax 类及示例

    简单Ajax 类及示例 直接在初始对像时请求 响应事件,容器 直接在初始对像时请求 仅响应事件 直接在初始对像时请求 仅响应容器 初始对像后操作 响应事件,容器 初始对像后操作 仅响应事件 初始对像后操作 仅响应容器 ...

    javascript Ajax类

    JS Ajax类 -------------------------------------

    最新AJAX类JavaScript

    * Ajax对象 * function functionName(reAjax,status){if(status == 200)alert(reAjax.responseText);} * * 例:1:GET * var myAjax=new Ajax(); * myAjax.open("http://www.ttzx.com:88/ajax/re.php",functionName);...

    MVC3+EF+Ajax分类网示例源码

    源码描述: 开发环境:vs2010+sql2008r2 技术特点: 多层层架构,MVC3.0,EF,jquery ashx ajax实现,利用ajax交互类似百度只能感知 功能描述: 可以展示分类信息,查询分类信息 登陆,注册用户

    已封装Ajax操作类

    因此,为了提高开发效率,通常会对其进行封装,创建一个自定义的Ajax类。 这个“已封装的Ajax操作类”很可能就是这样的一个工具,它可能包含了一系列的方法,如`get()`、`post()`等,分别对应HTTP的GET和POST请求。...

    JS Ajax类 支持POST,GET方式提交

    一个类实现 AJAX, 支持POST与GET提交

    一个简单实用的ajax"类"

    在提供的`ajax.js`文件中,我们可以预期包含一个简化版的Ajax类,这个类可能是为了简化JavaScript中的Ajax请求处理。在JavaScript中,Ajax请求通常通过创建XMLHttpRequest对象来实现,但这样的代码往往比较繁琐。...

    ajax 类 可跨域

    需要服务端支持,发出请求是会有callback ,context 两个值,服务端返回必需是 callback(context,response)一个javascript函数调用 response 可以是个对象如 {a:1,b:2}

Global site tag (gtag.js) - Google Analytics