新的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>
开头和结尾