Ajax request with Blob and ArrayBuffer

by Alex Alex

HTML

<div id="log"></div>

JavaScript

var logNode = document.querySelector('#log');
var log = function (any) {
    logNode.innerHTML += any.toString() + '<br><br>';
};
var testText = "Duis consectetur aliqua nisi ea ullamco voluptate eiusmod deserunt. Velit duis aliquip laboris elit fugiat consectetur. Reprehenderit ex dolore sunt non mollit amet laborum. In commodo ullamco proident labore laboris dolore deserunt. Consequat laborum tempor dolor quis do dolor officia laborum.\r\n Veniam sunt ad consequat quis duis tempor laborum anim voluptate ullamco. Irure laborum amet nostrud adipisicing anim ad dolor sint quis consequat. Elit nulla esse commodo incididunt culpa nisi amet ex ipsum ipsum quis aute ad consectetur.\r\n";

var sendAsBlob = function() {
    
    var ajaxRequest = new XMLHttpRequest();
    ajaxRequest.open('POST', 'https://api.github.com/markdown', true);
    
    ajaxRequest.setRequestHeader('Content-Type', 'application/json');
    ajaxRequest.setRequestHeader('Accept', 'application/vnd.github.v3+json');
    
    ajaxRequest.onreadystatechange = function() {
        if (ajaxRequest.readyState == 4) {
            log('Response: \n' + ajaxRequest.responseText);
        }
    };

    var BlobBuilder = window.MozBlobBuilder || window.WebKitBlobBuilder || window.BlobBuilder;

    if(BlobBuilder) {
        // android
        var oBuilder = new BlobBuilder();
        var aFileParts = ['{"text" : "'+testText+'"}'];
        oBuilder.append(aFileParts[0]);
        var blob = oBuilder.getBlob("text\/plain"); // the blob
        
    } else {
        // everyone else
        var blob = new Blob(['{"text" : "'+testText+'"}'], { 'type': 'text/plain' });    
    }

    ajaxRequest.send(blob);
};

sendAsBlob();

/* var timer = setInterval(sendAsBlob, 250);
setTimeout(function () {
    clearInterval(timer)
}, 5000); */