JSFiddle - React, Tailwind, and code Playground

JavaScript

jsonp('https://jsonp.afeld.me/', {
    url: 'http://jsonview.com/example.json'
}, function (res, status, e) {

    alert('JSON.stringify(res, null, 4));
});

function jsonp(url, dados, callback) {
    function toQueryString(object) {
        return Object.keys(object).map(function (prop) {
            return prop + '=' + object[prop];
        }).join('&');
    }

    var resposta;
    var queryStr = dados ? toQueryString(dados) + '&' : '';
    var nomeDaCallback = 'temp_callback_' + new Date().getTime() + Math.floor(Math.random() * 100);
    window[nomeDaCallback] = function (res) {
        delete window[nomeDaCallback];
        document.body.removeChild(script);
        resposta = res;
    };

    var src = [url, '?', queryStr, 'callback=', nomeDaCallback].join('');
    var script = document.createElement('script');
    script.src = src;
    script.onload = function (e) {
        callback(resposta, true, e);
    }
    script.onerror = function (e) {
        callback(resposta, false, e);
    }
    document.body.appendChild(script);
}