if (typeof XMLHttpRequest == 'undefined') {
XMLHttpRequest = function() {
return new ActiveXObject(navigator.userAgent.indexOf('MSIE 5') > 0 ? 'Microsoft.XMLHTTP': 'Msxml2.XMLHTTP');
}
};
/*一个完整的ajax函数*/
function ajax(options) {
options = {
type: options.type || 'POST',
ulr: options.url || '',
timeout: options.timeout || 5000,
//设置超时
onComplete: options.onComplete ||
function() {},
onError: options.onError ||
function() {},
onSuccess: options.onSuccess ||
function() {},
data: options.data || ''
};
var xml = new XMLHttpRequest();
xml.open(options.type, options.url, true);
var timeoutLength = options.timeout;
var requestDone = false;
setTimeout(function() {
requestDone = true;
},
timeoutLength);
xml.onreadystatechange = function() {
if (xml.readyState == 4 && !requestDone) {
if (httpSuccess(xml)) {
options.onSuccess(httpData(xml, options.type));
} else {
options.onError();
}
options.onComplete();
xml = null;
}
};
xml.send();
/*判断加载是否成功*/
function httpSuccess(r) {
try {
return ! r.status && location.protocl == 'file:' || (r.status >= 200 && r.status < 300) || r.status == 304 || navigator.userAgent.indexOf('Safari') >= 0 && typeof r.status == 'undefined';
} catch(e) {}
return false;
};
/*判断加载文件类型*/
function httpData(r, type) {
var ct = r.getResponseHeader('content-type');
var data = !type && ct && ct.indexOf('xml') >= 0;
data = tpye == 'xml' || data ? r.responseXML: r.responseText;
if (type == 'script') {
eval.call(window, data);
}
return data;
}
}