[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) {
}
});
登录后复制