Javascript: JSONP requests through DOJO
Usually, I use jQuery framework for Javascript development, but I recently worked on a project that required to make a website using ArcGIS for map visualization. ArcGIS requires the DOJO framework, which needed me to learn a few new tricks.
Here are three ways to accomplish a DOJO-based JSONP request through Ajax.
Example 1
dojo.requre.js
dojo.require("dojo.io.script");
function initAjaxRequest(){
var args = {
url: "http://main-worldvenues.rhcloud.com/feed",
content: {
q: "?"
//callback: "jsonData"
},
callbackParamName: "callback",
handleAs: "jsonp",
load: function(data, params ){
var json = JSON.parse(data, true)
console.log( "data", json );
},
error: function(error){
console.log( "An unexpected error occurred: " + error );
}
};
dojo.io.script.get(args);
}
dojo.ready(initAjaxRequest);
Example 2
dojo.requre.outbound.js
function jsonData(data){
var json = JSON.parse(data, true)
console.log( "data", json );
}
dojo.require("dojo.io.script");
function initAjaxRequest(){
var args = {
url: "http://main-worldvenues.rhcloud.com/feed",
content: {
q: "?",
callback: "jsonData"
},
handleAs: "jsonp",
load: function(res, params ){
},
error: function(error){
console.log( "An unexpected error occurred: " + error );
}
};
dojo.io.script.get(args);
}
dojo.ready(initAjaxRequest);
Example 3
Require.js
// Require the xhr module
require(["dojo/io/script", "dojo/_base/array", "dojo/json", "dojo/domReady!"], function(script, arrayUtil, JSON) {
script.get({
// The URL to get JSON from Twitter
url: "http://main-worldvenues.rhcloud.com/feed",
callbackParamName: "callback",
handleAs: "json",
content: {
},
load: function(items) {
var items = JSON.parse(items, true);
arrayUtil.forEach(items.rows,function(item) {
console.log(item);
});
},
error: function(err) {
console.log("Error!", err);
}
})
});