function sendRequest(method, url, callback, data) { let request = new XMLHttpRequest(); request.onreadystatechange = function() { if (request.readyState === XMLHttpRequest.DONE) { let response = { status : request.status, headers : request.getAllResponseHeaders(), contentType : request.responseType, content : request.response }; callback(response); } } request.open(method, url); if (data) { // TODO: understand these headers request.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); request.setRequestHeader("Content-length", data.length); request.setRequestHeader("Connection", "close"); request.send(data); } else { request.send(); } }