/**
* Perform basic AJAX request, return XMLHttpRequest
* Ajax.request ({
* URL
* Async is Async true (default)
* Method Request Mode POST or GET (default)
* Data Request parameter (key-value pair string)
* Success Response function After successful request, parameter is XHR
* Response function after error request failed, parameter is XHR
* });
*/
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 >= && s < 300) {
Success (XHR);
} else {
Failure (XHR);
}
} else {
}
}
return {
Request:request
};
}();
Ajax under JavaScript