创建回调 API

create callback API

本文关键字:API 回调 创建      更新时间:2023-09-26

新的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加载。

脚本answer.php非常基本:

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

稍后,脚本将使用$s调用正确的脚本,当然还提供用户数据。

现在我只是想运行脚本doit('jeroen');。但什么也没发生。在浏览器窗口中键入javascript:doit('jeroen');给出了我期望的结果。

有什么建议吗?

不要用<script>标签包围你的 javascript。您没有生成带有javascript正文的HTML文件。你应该把它想象成你在动态地生成一个javascript文件。

Javascript文件也不会以<script>开头和结尾