我有一个JS应用程序的部署,依赖于谷歌地图。我使用RequireJS的异步插件加载Google用于JS。
mapsKey = '&key=' + MY_API_KEY;
mapsURL = 'https://maps.googleapis.com/maps/api/js?libraries=places,geometry&v=3' + mapsKey;
define('GoogleMaps', ['async!' + mapsURL], function() {
return window.google.maps;
});我从服务器上获取MY_API_KEY,因为我不希望它出现在应用程序代码中。如果我们的服务器暂时不可用并且无法获取键值,或者由于某种原因Google拒绝API键,则会出现控制台错误.
"Google Maps API error: Google Maps API error: InvalidKeyMapError https://developers.google.com/maps/documentation/javascript/error-messages#invalid-key-map-error"更糟的是,应用程序中出现了一个丑陋的弹出..。

我有一个有效的API密钥设置与谷歌,一切都很好。但是如果有加载错误,我想在没有API键的情况下重试。Google确实在JS控制台中发出了关于丢失密钥的警告,但至少目前它仍然是最后的选择。
问:如何捕获Google错误?
在加载过程中,从Google库中抛出错误。这不是超时,而是无效的键参数错误。检查结果的window.google.maps实例不是一个选项,因为丑陋的弹出消息已经显示出来了。我看不出有什么方法可以捕捉错误和防止弹出。作为最后的手段,我想提供一些防御代码,在没有API密钥的情况下重新尝试。
发布于 2017-03-16 10:17:16
可以使用此全局函数捕获身份验证错误:
function gm_authFailure() { /* Code */ };如果希望以编程方式检测身份验证失败(例如自动发送信标),则可以准备回调函数。如果定义了以下全局函数,则将在身份验证失败时调用该函数。函数gm_authFailure() { /*码*/ };
https://developers.google.com/maps/documentation/javascript/events#auth-errors
https://stackoverflow.com/questions/37376417
复制相似问题