JSFiddle - React, Tailwind, and code Playground
by LyndseyB
JavaScript
var ajax = function ajax(url, data, callback, method) {
var request = new XMLHttpRequest();
if(!request) {
throw('XMLHttpRequest is unavailable');
}
if(typeof url !== 'string' || url === '') {
throw('Missing parameter url');
}
method = method || 'POST';
switch(method.toUpperCase()) {
case 'GET':
case 'POST':
break;
default:
throw('ajax method is undefined. Please use GET or POST.');
}
var ajaxData = Object.assign({}, data);
if(typeof ajaxData !== 'string') {
ajaxData = JSON.stringify(ajaxData);
}
if(callback && typeof callback === 'function') {
request.onreadystatechange = function() {
if(request.readyState === XMLHttpRequest.DONE) {
if(request.status !== 200) {
callback('Ajax request error: ' + request.statusText, null);
return;
}
callback(null, ajaxData, request.responseText);
}
}
}
request.open(method, url);
request.send(ajaxData);
};
function ajaxCallback(err, data, response) {
if(err) {
throw(err);
}
console.log(data, response);
}
ajax('/echo/json', { name: 'Lyndsey', age: 30 }, ajaxCallback, 'POST');