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);
}