Reputation: 630
function ajax(options) {
options = {
type: options.type || "POST",
url: options.url || "",
timeout: options.timeout || 5000,
onComplete: options.onComplete || function(){},
onError: options.onError || function(){},
onSuccess: options.onSuccess || function(){},
data: options.data || ""
};
if (typeof XMLHttpRequest == "undefined") {
XMLHttpRequest = function(){
try { return new XMLHttpRequest(); } catch(e) {}
try { return new ActiveXObject("Msxml2.XMLHTTP.6.0"); } catch (e) {}
try { return new ActiveXObject("Msxml2.XMLHTTP.3.0"); } catch (e) {}
try { return new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) {}
try { return new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {}
return null;
};
}
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 >= 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 = type == "xml" || data ? r.responseXML : r.responseText;
if (type == "script") eval.call(window, data);
return data;
}
}
function serialize(a) {
var s = [];
if (a.constructor == Array) {
for (var i = 0; i < a.length; i++) s.push(a[i].name + "=" + encodeURIComponent(a[i].value));
} else {
for (var j in a) s.push(j + "=" + encodeURIComponent(a[j]));
}
return s.join("&");
}
This code does not work. What is the problem?
Upvotes: -2
Views: 202