当前位置:编程学习 > JAVA >>

JavaScript自己封装ajax的js

[javascript]
/**   
* 执行基本ajax请求,返回XMLHttpRequest   
*  Ajax.request({   
*  url
*  async 是否异步 true(默认)  
*  method 请求方式 POST or GET(默认)  
*  data 请求参数 (键值对字符串)  
*  success 请求成功后响应函数,参数为xhr  
*  error 请求失败后响应函数,参数为xhr  
*  });   
*/     www.zzzyk.com
Ajax = function() { 
    function request(opt) { 
        function fn() { 
        } 
        var url = opt.url || ""; 
        var async = opt.async !== false, method = opt.method || 'GET', data = opt.data 
                || null, success = opt.success || fn, error = opt.failure 
                || fn; 
        method = method.toUpperCase(); 
        if (method == 'GET' && data) { 
            var args = ""; 
            if(typeof data == 'string'){ 
                //alert("string") 
            args = data; 
            }else if(typeof data == 'object'){ 
                //alert("object") 
                var arr = new Array(); 
                for(var k in data){ 
                    var v = data[k]; 
                    arr.push(k + "=" + v); 
                } 
                args = arr.join("&"); 
            } 
        url += (url.indexOf('?') == -1 ? '?' : '&') + args; 
            data = null; 
        } 
        var xhr = window.XMLHttpRequest ? new XMLHttpRequest() 
                : new ActiveXObject('Microsoft.XMLHTTP'); 
        xhr.onreadystatechange = function() { 
            _onStateChange(xhr, success, error); 
        }; 
        xhr.open(method, url, async); 
        if (method == 'POST') { 
            xhr.setRequestHeader('Content-type', 
                    'application/x-www-form-urlencoded;'); 
        } 
        xhr.send(data); 
        return xhr; 
    } 
    function _onStateChange(xhr, success, failure) { 
        if (xhr.readyState == 4) { 
            var s = xhr.status; 
            if (s >= 200 && s < 300) { 
                success(xhr); 
            } else { 
                failure(xhr); 
            } 
        } else { 
        } 
    } 
    return { 
        request : request 
    }; 
}(); 

[javascript] 
 Ajax.request({ 
    url : path + "/report/topn/topn_data.jsp", 
    data : { 
        datatype : datatype 
    }, 
    success : function(xhr) { 
        onData(xhr.responseText); 
    }, 
    error : function(xhr) { 
         
    } 
}); 

补充:web前端 , JavaScript ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,