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

JavaScript kapselt Ajax-JS selbst

高洛峰
Freigeben: 2016-11-26 14:49:34
Original
1322 Leute haben es durchsucht

[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) { 
         
    } 
});
Nach dem Login kopieren


Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage