Функция обратного вызова Json Rpc - PullRequest
2 голосов
/ 10 января 2012

Как передать данные 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, объявив обратный вызов.Если нет, то как бы я отобразил эти данные на стороне клиента.Поскольку я могу получить эти API-сервисы только с помощью Json Rpc или SOAP XML, это то, что говорится в документации.

1 Ответ

2 голосов
/ 03 апреля 2012

Ваш пример в стиле 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;

Существует довольно много библиотек для выполнения JSON-RPC из клиента JavaScript (например, браузера), и каждая может немного отличаться в соглашении о вызовах.

...