自分でjQuery-ajaxプラグインを書いて、XMLHttpRequest、コールバックをサポートして、ie、ff、360などのブラウザに互換性があります

3108 ワード

jquery.kl.ajax.js
.klはネーミングスペース
.使用にはjqueryが必要です.js
/*
 *           
 *readyState
	 *0:      
	 *1:      ,       
	 *2:     ,     
	 *3:      
	 *4:     
 *status
	 *401:    
	 *403:    
	 *404:      
	 *200:  
 *email [email protected]
 */
jQuery.kl = {
	ajax: function (options) {
		var defaults = {
			//     (   post、get)
			method: "post",
			//  
			url: "#",
			//     (  true、false)
			async: true,
			//   
			user: null,
			//  
			password: null,
			//    
			callBack: function (data) {
				//data      
			}
		};
		var o = jQuery.extend(defaults, options);
		//method
		if (o.method != "post" && o.method != "get") {
			__log("'method'     . \r
'post' 'get' ."); return; } //url if (jQuery.trim(o.url) == "" || o.url == "#") { __log("'url' ."); return; } //async if (jQuery.trim(o.async) == "" || (o.async != true && o.async != false)) { __log("'async' . \r
true false ."); return; } //callBack if (typeof (o.callBack) != "function") { __log("'callBack' . \r
'function' , ."); return; } var xhr = null; // ajax try { xhr = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { xhr = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) { try { xhr = new XMLHttpRequest(); } catch (e) { __log(" ajax ."); return; } } } // xhr.onreadystatechange = function () { // if (xhr.readyState == 4) { // if (xhr.status == 200) { // o.callBack(xhr.responseText); } else { // switch (xhr.status) { case 401: __log(" . \r
: ."); break; case 403: __log(" . \r
: ."); break; case 404: __log(" . \r
: ."); break; default: __log(" . \r
: ."); break; } } } }; //open xhr.open(o.method, o.url, o.async, o.user, o.password); //send xhr.send(null); } }; /* * */ function __log(text) { if (window.console && window.console.log) { window.console.log(text); } };

ページコール




    
    
    
    Jquery      


    
$(function () { $.kl.ajax({ method: "post", url: "/Search.aspx?q=123", async: true, callBack: function (data) { $("#_xhr").html(data); } }); });