CppCMS
json_rpc/usingrpc.html Using JsonRPC Object
<html>
<head>
<script type="text/javascript" src="/scripts/json2.js"></script>
<script type="text/javascript" src="/scripts/jsonrpc.js"></script>
</head>
<body>
<script type="text/javascript">
var rpc = new JsonRPC('/rpc',['div','sum'], ['notify']);
function getX()
{
return parseInt(document.getElementById('x').value);
}
function getY()
{
return parseInt(document.getElementById('y').value);
}
function setResult(r)
{
document.getElementById('result').innerHTML += r + '<br>';
}
function call()
{
var x = getX();
var y = getY();
// Synchronous call
/*
try {
setResult(x+'/'+y+ '=' + rpc.div(x,y));
setResult(x+'+'+y+ '=' + rpc.sum(x,y));
rpc.notify('test');
}
catch(e) {
setResult(e.message);
}
*/
// Asynchronous call
rpc.div.on_error = function(e) { setResult(e.error); }
rpc.div.on_result = function(r) { setResult(x + '/' + y + '=' + r ); }
rpc.sum.on_error = function(e) { setResult(e.error); }
rpc.sum.on_result = function(r) { setResult(x + '+' + y + '=' + r); }
rpc.notify.on_error = function() { setResult('Notification error:' + e.error); }
rpc.notify.on_result = function() { setResult('Notification Called'); }
rpc.div(x,y);
rpc.sum(x,y);
rpc.notify('test');
return false;
}
</script>
<p><a href="/">Using plain XMLHttpRequest</a></p>
<form onsubmit="return call();">
<p>
<input type="text" id="x" />
<input type="submit" value="?" />
<input type="text" id="y" /> =
</p>
<p id="result"></p>
</form>
</body>
</html>