Newer
Older
tinyDOM.ajax = function (options) {
var req = new XMLHttpRequest(),
_this = this,
ev,
i,
params = {
method: 'GET',
url: '',
async: true,
user: null,
password: null,
responseType: 'text',
data: null,
headers: [],
callbacks: {}
},
makeListener = function (callback) {
return function (data) {
callback(data.currentTarget.response, data);
};
};
req.responseType = params.responseType;
if (this.exists(params.callbacks)) {
for (ev in params.callbacks) {
if (params.callbacks.hasOwnProperty(ev)) {
req.addEventListener(ev, makeListener(params.callbacks[ev]));
}
}
}
req.open(
params.method,
params.url,
params.async,
params.user,
params.password
);
for (i = 0; i < params.headers.length; i++) {
req.setRequestHeader(params.headers[i].header, params.headers[i].value);
}
req.send(params.data);
return req;
};