javascript — создание API обратного вызова

Новые API Restful, такие как 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 в процессе.

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

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

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

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

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

0

Решение

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

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

2

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector