Subversion Repositories Applications.papyrus

Compare Revisions

Ignore whitespace Rev 2149 → Rev 2150

/trunk/api/js/dojo1.0/dojo/rpc/JsonpService.js
New file
0,0 → 1,65
if(!dojo._hasResource["dojo.rpc.JsonpService"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.
dojo._hasResource["dojo.rpc.JsonpService"] = true;
dojo.provide("dojo.rpc.JsonpService");
dojo.require("dojo.rpc.RpcService");
dojo.require("dojo.io.script");
 
dojo.declare("dojo.rpc.JsonpService", dojo.rpc.RpcService, {
// summary:
// Generic JSONP service. Minimally extends RpcService to allow
// easy definition of nearly any JSONP style service. Example
// SMD files exist in dojox.data
 
constructor: function(args, requiredArgs){
if(this.required) {
if(requiredArgs){
dojo.mixin(this.required, requiredArgs);
}
 
dojo.forEach(this.required, function(req){
if(req=="" || req==undefined){
throw new Error("Required Service Argument not found: "+req);
}
});
}
},
 
strictArgChecks: false,
 
bind: function(method, parameters, deferredRequestHandler, url){
//summary:
// JSONP bind method. Takes remote method, parameters,
// deferred, and a url, calls createRequest to make a JSON-RPC
// envelope and passes that off with bind.
// method: string
// The name of the method we are calling
// parameters: array
// The parameters we are passing off to the method
// deferredRequestHandler: deferred
// The Deferred object for this particular request
 
var def = dojo.io.script.get({
url: url||this.serviceUrl,
callbackParamName: this.callbackParamName||"callback",
content: this.createRequest(parameters),
timeout: this.timeout,
handleAs: "json",
preventCache: true
});
def.addCallbacks(this.resultCallback(deferredRequestHandler), this.errorCallback(deferredRequestHandler));
},
 
createRequest: function(parameters){
// summary:
// create a JSONP req
// params: array
// The array of parameters for this request;
 
var params = (dojo.isArrayLike(parameters) && parameters.length==1) ?
parameters[0] : {};
dojo.mixin(params,this.required);
return params;
}
});
 
}