ajax 简单封装

/** 调用远程服务器程序 
*@_url    服务器url 
*@_target 本地用于容纳返回结果的 html 元素,可以为空 
*@async   true-异步调用 false-同步调用 
*@params  附加调用参数 
*@callback 服务器端成功返回后的回调函数 
*返回值:如果同步调用,则返回服务器的返回结果值,否则直接返回 false 
*/ 
function callToServer(_url, _target, async, params, callback) { 
try { 
    if (async==null||async==true) async=true; 
        var ret;     
        var xmlHttp = createXMLHttpRequest(); 
        xmlHttp.onreadystatechange = function() { 
            if (xmlHttp.readyState == 4) {  // 4-READY_STATE_COMPLETE 
                ret = xmlHttp.responseText; 
                if (_target) { 
                    var selObj = getElement(_target); 
                    if (selObj) { 
                        if (selObj.tagName && "input,textarea,select".indexOf(selObj.tagName.toLowerCase())>=0)
                             selObj.value=ret; 
                        else { 
                            try { 
                                selObj.innerHTML=ret; 
                            } catch (e1) {} 
                        } 
                    } 
                } 
                
                // 回调函数 
                if (callback) 
                    callback.call(this, ret); 
            }            
        }; 
        
        xmlHttp.open("POST", _url, async); // true-异步 false-同步 
        xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8");
         xmlHttp.setRequestHeader("req-type", "ajax");       
        if (params && (typeof params)=="object")  // json 
            params = serializeJson(params); 
            
        xmlHttp.send(params); 
        
    } catch(e) { 
       window.alert(e); 
    }        

    if (async) return false; 
    else return ret 
} 

// ajax 的请求对象 
function createXMLHttpRequest() { 
    var xmlHttp = null;    
    if (window.ActiveXObject) { 
        try { 
            xmlHttp = new ActiveXObject("Msxml2.XMLHTTP"); 
        } catch(e) { 
            xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); 
        } 
        
    } else if (window.XMLHttpRequest) { 
        xmlHttp = new XMLHttpRequest(); 
    } 
    return xmlHttp 
} 
原文地址:https://www.cnblogs.com/lcuzhanglei/p/2624491.html