我将谷歌地图api v3嵌入到我的网站中,这一切都很好,直到几周前。在最近几周内,地图图块(只有地图,卫星图块始终正常工作)不时加载几个小时,有时几天。除此之外,我得到以下两条403错误消息:
[Error] Failed to load resource: the server responded with a status of 403
(Forbidden) (ViewportInfoService.GetViewportInfo, line 0)
http://maps.googleapis.com/maps/api/js/ViewportInfoService.GetViewportInfo
[Error] Failed to load resource: the server responded with a status of 403
(Forbidden) (AuthenticationService.Authenticate, line 0)
http://maps.googleapis.com/maps/api/js/AuthenticationService.Authenticate
看起来身份验证出错了。但是,我远不及每天拨打api的最大数量。此外,地图控件以及卫星图块(当我切换到它们时)加载没有问题。
这个问题每周几次随机发生几次,直到一整天。大部分时间一切正常。
有没有人在遇到过这样的问题或对可能出现的问题有任何想法?
更新2016年2月:仍在处理同样的问题
仔细检查后,似乎每次更新网站后,地图图块都会工作几天,然后再显示403条消息。
google开发者控制台中的使用情况统计信息显示,我每天几乎不会超过100个请求,因此使用限制根本不应成为问题。
到目前为止,我确实请求了一个新的API密钥,看看这是否会有所帮助。在我更改了密钥后,就像在网站更新几天之后一切正常,但是现在我们又回到了同样的旧情况
答案 0 :(得分:2)
所以,最后这似乎已经解决了。原来问题是我用symfony的资产处理了包含的谷歌地图javascript文件。这导致文件缓存在我的网络服务器上,并从那里提供给我的用户,这反过来触发谷歌的安全措施,以防止瓦片刮,导致403响应。
解决方案非常简单,使用简单的<script src=".."></script>
标签而不是资产和标签的{% javascripts '..' %}
标签。
为什么这只会导致地图问题,而不是卫星图像,我不知道!
答案 1 :(得分:0)
解决了WordPress网站上GMaps API的相同问题。
问题是由积极的缓存引起的。
清除W3 Total Cache现在解决了这个问题。设置不太激进的缓存策略应该可以防止问题再次发生。