Skip to content

Instantly share code, notes, and snippets.

@larscwallin
Created September 12, 2011 10:35
Show Gist options
  • Save larscwallin/1210981 to your computer and use it in GitHub Desktop.
Save larscwallin/1210981 to your computer and use it in GitHub Desktop.
simplx.rpc client javascript
<script src="https://github.com/douglascrockford/JSON-js/raw/master/json2.js"> </script>
<script type="text/javascript">
var simplx = new Object();
simplx.jsonrpc = (function(){
var response = null;
var self = this;
this.url="";
this.host="";
this.path="";
this.pageid="";
this.parametername="";
this.rpc={
jsonrpc:"2.0",
id:"1",
method:"",
params:{}
};
this.callback=null;
this.errorcallback=null;
this.init = function(options){
// Legacy properties to be removed
self.url = options.url || (document.location.href.substring(0,document.location.href.indexOf("/",7)+1));
self.pageid = ("?id=" + options.pageid) || "";
//-----------------------
console.log(self.url);
self.host = options.host || self.url;
self.service = options.service || self.pageid;
self.parametername = options.parametername || "";
self.rpc= options.rpc || self.rpc;
self.callback=options.callback || self.callback;
self.errorcallback=options.errorcallback || self.errorcallback;
};
this.execute = function(){
var data = "";
var completeUrl = (self.host + "" + self.service);
var rpc = JSON.stringify(self.rpc);
response = $.ajax({
type:"POST",
url:completeUrl,
data:rpc,
contentType:"application/json-rpc",
success:function(data){
if(data){
try{
data = JSON.parse(data);
}catch(e){
// The data might just have been cast to Array already as the response type is application/json
}
if(!data.error){
self.callback(data);
return true;
}else{
if(self.errorcallback){
self.errorcallback(data);
}
return false;
}
}
}
});
}
});
</script>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment