谷歌地图地理定位突然失效,报“API without a callback is not supported”错误求助
问题排查与解决方案
1. 解决“API without a callback is not supported”错误
这个错误源于你加载Google Maps JS API时未指定callback参数,当前Google Maps JS API要求异步加载必须通过回调函数完成初始化。
修复JS API加载代码
修改页面头部的脚本引入,添加callback参数并指定一个初始化函数:
<script type="text/javascript" src="https://maps.google.com/maps/api/js?sensor=false&v=3&libraries=geometry&callback=initMap"></script>
随后在你的脚本中定义这个initMap函数,所有依赖Google Maps JS API的逻辑都要放在该函数内执行(因为API是异步加载的,必须等加载完成后才能调用相关方法):
function initMap() { // 此处编写需要用到Google Maps JS API的代码 }
2. 地理编码API调用的检查
你用axios直接调用的是Geocoding REST API,该调用与Google Maps JS API相互独立。如果仅需地理编码功能,甚至可以移除页面头部的Google Maps JS API引入,避免两种调用方式产生冲突。
同时需确认:
- 你的API密钥(
MyKey)已在Google Cloud控制台启用了Geocoding API,且密钥配额未耗尽、权限配置正确。 - 传入的
address参数格式合法,location变量确实包含有效的地址字符串。
3. 功能突然失效的可能原因
- Google Maps API政策更新,近期强制要求JS API异步加载必须指定回调函数。
- API密钥的权限或配额发生变化,比如Geocoding API被意外禁用,或超出免费配额限制。
内容的提问来源于stack exchange,提问作者Mpilonhle Ngcoya
相关产品推荐
相关产品推荐

