создать API обратного вызова

0

Новый Restful API, такой как Google, OpenStreetview использует простой механизм обратного вызова. В основном вы вызываете API, добавляя параметр &callback=my function. При выполнении вызова этого API, в результате моя функция называется передачей набора данных JSON.

Я пытаюсь создать тот же механизм для API, который я создаю для личного использования.

Насколько я понял, API должен вернуть javascript, который вызывает функцию, переданную в скрипте. Для теста я создал это:

    function apiCall(URL,values, keyPair,cBackPair) {
    // URL specifics URL to call
    // keyPair: <keyname>=<key>; leave black if unneeded
    // cBacPair: <callBackParametername>=<functionname>
    // called is: URL?values&keypair&cBackPair

    var request = (keyPair)?'&'+keyPair:'';
    request = URL + '?'+ encodeURI(values) + request + '&' + cBackPair;     
    var script = document.createElement("script");
    script.setAttribute("type", "text/javascript");
    script.setAttribute("src", request);
    document.body.appendChild(script);
 }

function callAPI() {
    apiCall('http://xllent.nl/map/ajax/answer.php','q=one','','s=doit');
}

function doit(result) {
    alert(result);
}

Для проверки я вызываю callAPI onload.

Сценарий answer.php очень прост:

<?$s = $_GET['s'];
?>
<script type="text/javascript">
doit('jeroen');
</script>

Позже скрипт будет использовать $s для вызова правильного скрипта и, конечно же, предоставления пользовательских данных.

Пока я просто пытаюсь получить скрипт doit('jeroen'); для запуска. Но ничего не происходит. Ввод javascript:doit('jeroen'); в окне браузера дается результат, которого я ожидал бы.

Какие-либо предложения?

  • 0
    restful api использует веб-клиент, такой как curl, чтобы открыть URL обратного вызова, это не имеет ничего общего с javascript
Теги:
callback

1 ответ

2

Не окружайте свой javascript тегами <script>. Вы не генерируете HTML файл с телом javascript. Вы должны думать об этом, как будто вы создаете файл javascript на лету.

Файлы Javascript также не запускаются и не заканчиваются <script>

  • 0
    работает! бесконечно благодарен

Ещё вопросы

Сообщество Overcoder
Наверх
Меню