自分でjQuery-ajaxプラグインを書いて、XMLHttpRequest、コールバックをサポートして、ie、ff、360などのブラウザに互換性があります
3108 ワード
jquery.kl.ajax.js
.klはネーミングスペース
.使用にはjqueryが必要です.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);
}
});
});