Heim >Web-Frontend >js-Tutorial >JavaScript kapselt Ajax-JS selbst

JavaScript kapselt Ajax-JS selbst

高洛峰
高洛峰Original
2016-11-26 14:49:341317Durchsuche

[javascript]
/**   
* 执行基本ajax请求,返回XMLHttpRequest   
*  Ajax.request({   
*  url
*  async 是否异步 true(默认)  
*  method 请求方式 POST or GET(默认)  
*  data 请求参数 (键值对字符串)  
*  success 请求成功后响应函数,参数为xhr  
*  error 请求失败后响应函数,参数为xhr  
*  });   
*/     www.2cto.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) { 
         
    } 
});


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:Verstümmelter JavaScript-CodeNächster Artikel:Verstümmelter JavaScript-Code