我一直在尝试从本地文件加载api密钥,我有以下代码:
<script>
jQuery.get("key.txt", undefined, function(response)
{
src="https://maps.googleapis.com/maps/api/js?key=" + response + "&libraries=places";
});
</script>
然而,当涉及谷歌地图api实际被访问时,会引发以下错误:
VM1464:1 Uncaught SyntaxError: Unexpected token C in JSON at position 0(…)
在jquery中的某个函数中抛出。我不确定这个错误是否来自src根本就没有设置的事实,或者我是否只是没有正确处理异步性。非常感谢任何帮助,谢谢。
修改
更新了代码:
$.get("key.txt", function(response)
{
src="https://maps.googleapis.com/maps/api/js?key=" + response + "&libraries=places";
console.log(src);
});
src完全按照它应该出现在控制台中。但是,在网页上做了各种各样的事情,然后点击一个按钮 - 它调用了一个使用google maps api访问php页面的功能:
$url = "https://maps.googleapis.com/maps/api/distancematrix/json?units=imperial&origins=".$userLat.",".$userLng."&destinations=".$helperLat.",".$helperLng."&Key=".$key;
//can specify mode (default driving), language etc.
try{
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_CAINFO, "crt.PEM");
$auth = curl_exec($curl);
...
其中$ userLat,$ userLng,$ helperLat,$ helperLng和$ key先前(成功)初始化 - 抛出错误。
修改
我想我真正要问的是,在处理了异步之后,我如何将返回值放入html脚本标记的src属性中。到目前为止,我有这个,但它不起作用:
<script src="" onload="getSource(function(result){ return result; });">
function getSource(callback)
{
$.get("key.txt", function(response)
{
callback("https://maps.googleapis.com/maps/api/js?key=" + response + "&libraries=places");
});
}
</script>