Ajax Javascript Puro

Ajax Javascript Puro

by Angelo Rogério Rubin

HTML

<p id="container"></p>

JavaScript

// Our simplified "load" function accepts a URL and CALLBACK parameter.
load('https://github.com/angelorubin/codeminer42/blob/master/log.html', function(xhr) {
    document.getElementById('container').innerHTML = xhr.responseText;
});
 
function load(url, callback) {
        var xhr;
         
        if(typeof XMLHttpRequest !== 'undefined') xhr = new XMLHttpRequest();
        else {
            var versions = ["MSXML2.XmlHttp.5.0",
                            "MSXML2.XmlHttp.4.0",
                            "MSXML2.XmlHttp.3.0",
                            "MSXML2.XmlHttp.2.0",
                            "Microsoft.XmlHttp"]
 
             for(var i = 0, len = versions.length; i < len; i++) {
                try {
                    xhr = new ActiveXObject(versions[i]);
                    break;
                }
                catch(e){}
             } // end for
        }
         
        xhr.onreadystatechange = ensureReadiness;
         
        function ensureReadiness() {
            if(xhr.readyState < 4) {
                return;
            }
             
            if(xhr.status !== 200) {
                return;
            }
 
            // all is well 
            if(xhr.readyState === 4) {
                callback(xhr);
            }          
        }
         
        xhr.open('GET', url, true);
        xhr.send('');
    }