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 ( "您还没有登陆或者登陆已经超时, 请登陆后重试!" );
        }
    }
} 



你可能感兴趣的:(html,Ajax,xml,Microsoft,prototype)