diff --git a/js/tinyDOM.js b/js/tinyDOM.js index b9c571a5b5040445206948ae8021a0c00ceeadd6..623809cf999a814766adee0705fa4ca4c01ed8d6 100644 --- a/js/tinyDOM.js +++ b/js/tinyDOM.js @@ -93,6 +93,57 @@ } } + tinyDOM.ajax = function(options){ + var req = new XMLHttpRequest(); + var _this = this; + + var params = { + method: 'GET', + url: '', + async: true, + user: null, + password: null, + responseType: 'text', + data: null, + headers: [], + success: null, + error: null + } + + this.merge(params, options); + + req.responseType = params.responseType; + + req.onreadystatechange = function(){ + if(req.readyState > 1){ + if(req.status === 200){ + if (req.readyState === 4 && _this.exists(params.success)){ + params.success(req.response, req); + } + } else { + req.abort(); + if(_this.exists(params.error)){ + params.error({status: req.status, message: req.statusText}, req); + } + } + } + } + + req.open( + params.method, + params.url, + params.async, + params.user, + params.password + ); + + for(var i = 0; i < params.headers.length; i++){ + req.setRequestHeader(params.headers[i].header, params.headers[i].value); + } + + req.send(params.data); + }; + if(!window.μ){ window.μ = tinyDOM; }