JSFiddle - React, Tailwind, and code Playground
JavaScript
//test("http://demo.ckan.org/api/3/action/group_list", {});
//test("http://demo.ckan.org/api/3/action/group_show", {"id": "qingqing"});
test("http://demo.ckan.org/api/3/action/group_show", {"id": "collectivites-locales"});
//test("http://catalog.data.gov/api/3/action/group_list", {});
test("http://catalog.data.gov/api/3/action/group_show", {"id": "law1129"});
test("http://catalog.data.gov/api/3/action/tag_show", {"id": "2010-data"});
function test(url, params) {
_test(url, params, false);
_test(url, params, true);
}
function _test(url, params, usePost) {
var json = JSON.stringify(params);
var request = new XMLHttpRequest();
if (usePost)
{
request.open("POST", url, false);
}
else
{
url += '?';
for (var p in params)
url += p + '=' + params[p] + '&';
request.open("GET", url, false);
}
//request.responseType = "text";
//request.setRequestHeader("Content-Type", "application/json");
request.onload = request.onerror = function (event) {
var output = {method: usePost?'POST':'GET', url: url};
if (usePost)
output.params = params;
output.status = request.status + ' ' + request.statusText;
var r = JSON.parse(request.response);
output.success = r.success;
//output.result = r.result;
output.error = r.error;
if (typeof r == 'string')
output.response = r;
trace(output);
};
request.send(json);
}
function trace(data) {
var str = JSON.stringify(data, null, 4);
var frag = document.createDocumentFragment();
var pre = document.createElement('pre');
var text = document.createTextNode(str);
pre.appendChild(text);
document.body.appendChild(pre);
}