首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用requirejs异步插件时捕获Google错误

使用requirejs异步插件时捕获Google错误
EN

Stack Overflow用户
提问于 2016-05-22 15:50:47
回答 1查看 3K关注 0票数 1

我有一个JS应用程序的部署,依赖于谷歌地图。我使用RequireJS的异步插件加载Google用于JS。

代码语言:javascript
复制
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键,则会出现控制台错误.

代码语言:javascript
复制
"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密钥的情况下重新尝试。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-16 10:17:16

可以使用此全局函数捕获身份验证错误:

代码语言:javascript
复制
function gm_authFailure() { /* Code */ };

如果希望以编程方式检测身份验证失败(例如自动发送信标),则可以准备回调函数。如果定义了以下全局函数,则将在身份验证失败时调用该函数。函数gm_authFailure() { /*码*/ };

https://developers.google.com/maps/documentation/javascript/events#auth-errors

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37376417

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档