2

如何将 Json Rpc 数据传递给指定的回调函数,就像 Json 一样。您可以通过在url中指定回调参数来获取响应数据。

例如:

var url = "http://...sample/..?alt=new&callback=dispUser";
var script = document.createElement('script');
script.src = url;
document.body.appendChild(script); 

那么结果将是这样的

dispUser({ "id": "" });

但是在Json Rpc中我不能,有没有办法通过声明回调来获取Json Rpc的响应数据。如果没有,我将如何在客户端显示这些数据。因为我只能使用 Json Rpc 或 SOAP XML 来获取这些 api 服务,所以这就是文档中的内容。

4

1 回答 1

2

您的示例采用 JSONP 样式。这是 JSON-RPC 风格的示例:

var mathService;

function init() {
    mathService = RPC.consume('http://foo.bar/mathematics.smd', mathReady);
}

function mathReady() {
    mathService.cuberoot(9, function(root) {
        $('#example_output').html(root);
    });
}

window.onload = init;

如果 JSON-RPC 服务不通过 SMD 描述自己,您可以编写如下代码:

function init() {
    RPC.callMethod('http://foo.bar/mathematics.php', { 
        method: 'cuberoot', 
        params: [ 9 ]
    }, function(error, result) {
        $('#example_output').html(result);
    });
}

window.onload = init;

有很多库用于从 JavaScript 客户端(例如:浏览器)执行 JSON-RPC,并且每个库的调用约定可能略有不同。

于 2012-04-03T09:21:44.220 回答