经过几个月100%的稳定性,今天我在谷歌地图服务上得到403错误

daz*_*ury 3 geocoding google-maps-api-3 http-status-code-403

我只是想知道是否有人可以解释为什么我看到谷歌地图服务的403 Forbidden错误.

我一直在加载地图api:

<script type="text/javascript" src="//maps.googleapis.com/maps/api/js?libraries=places&amp;sensor=false"></script>
Run Code Online (Sandbox Code Playgroud)

然后使用地理编码和自动完成库将用户搜索转换为坐标,以在我的搜索结果的地图上显示.

直到昨天,当我访问自动完成服务时,我开始看到403错误,这是完美的(几个月).

我100%自信我没有达到每天25k的查询限制,而且我没有对我进行任何代码更改.

我现在已经在我的脚本加载中添加了一个API密钥,问题消失了,但我想确保这不会再次发生.基于位置的搜索是我们网站的主要功能,如果它破裂,我们会失去客户.

有没有人知道为什么会发生这种情况?

在什么情况下会再次发生?

daz*_*ury 12

即使使用API​​密钥集,这个问题也刚刚重新出现- 我认为问题实际上在于缓存谷歌地图javascript.

我让我的Web服务器动态决定在本地组合,缩小和缓存的javascript.这是使用RequestReduce完成的.

当客户端javascript变得陈旧(在我的情况下大约3天) - 谷歌返回403未经授权.

API密钥只是一个红色的鲱鱼.我可以删除密钥,我的代码仍然有效 - 只要地图js是"新鲜的".

在我的例子中,修复是添加maps.googleapis.comRequestReduce忽略列表:

javascriptUrlsToIgnore="maps.googleapis.com"
Run Code Online (Sandbox Code Playgroud)

对于其他人,请确保不要将maps.googleapis.com javascript缓存超过几个小时(如果有的话).