Latest thing to bite me: dojo.xhrGet/Post now use a Deferred instead of direct callbacks. For JSON data, the callback that you register with the Deferred only needs to take one argument, the eval’d JSON object, instead of the old type,object,transport triple from dojo.io.bind. Also, remember to return the object from your handler so that others can chain onto the Deferred if need be. A typical handler looks like:
var def = dojo.xhrGet("/my/json");
def.addCallback(function(obj) {
// work with the object
console.info("here's my data: %o", obj);
// important to return the object for future callbacks
return obj;
});