我面临Google Maps Javascript API V3的问题。控制台日志显示:
谷歌地图API错误:RefererDeniedMapErrorhttps://developers.google.com/maps/documentation/javascript/error-messages#referer-拒绝地图错误
谷歌关于这个错误的文档非常糟糕,即使他说要查看开发者控制台搜索更多详细信息,我也找不到关于那个错误的更多细节,这可能与下面列表中发布的一些信息有关。我看到在谷歌控制台中,你可以以某种方式启用日志记录或其他东西,但它需要谷歌SDK,我无法配置它,因为这意味着超出预算的
这里已经问到了这个问题:Google Maps API v3中的Javascript错误(RefererDeniedMapError),但没有任何答案能帮助我
以下是我迄今为止所尝试的:
- 重新生成Google Api
- 在Google控制台中启用/禁用域限制
- 已将密钥从浏览器更改为服务器
- 试图了解该域名是否因某种原因被谷歌禁止
- 在Google控制台上创建新项目并生成一个全新的Javascript API密钥,无需(从一开始)域限制
让我提供更多的背景数据:
- 我在一个已经存在的网站上为一个外部客户工作,他对之前存在的谷歌帐户一无所知,这些帐户可能已经配置了api密钥(他们使用了一些谷歌api服务,但我只知道这些)
- 我设法发现谷歌已经联系了他们关于API使用配额的问题,但我再次不知道通信细节在哪里
- 他们有一个IIS服务器,正在主域的子目录中构建新站点
- 我注意到,从新网站到自己网站的自我请求(ajax)会导致跨域请求,这在我看来真的很奇怪,很糟糕,我不知道他们的服务器配置是什么
- 我已经检查了Google Api的免费计划,每天的上限是25000,客户说他不能达到那么高,但他愿意付费重新启用Api的
- 我测试了一个新生成的API在本地环境&其他测试活动域,它看起来像工作,但一旦我在有罪域上尝试这些密钥,错误就会弹出
我的问题是:
- 如果该域名因API使用量过高或其他原因而被谷歌以某种方式禁止,是否有一种安全的方法可以理解
- 我如何才能确保为域创建一个账单帐户,并允许API计划高于25000将再次启用我的计划
- 这是一个与javascript相关的问题吗?我想我已经尽我所能检查了这一部分,但我愿意接受建议
- 如果有多个google帐户引用同一个域来使用API,这有关系吗?我的意思是,据我所知,在该域中,可能有多个Google帐户为同一目标创建了不同的API密钥(域限制或是否仍在使用)
对于将来会遇到这个问题的每个人来说:事实证明这是一个领域问题。我设法通过他们的论坛联系到了谷歌支持服务的一位用户:https://code.google.com/p/gmaps-api-issues/
在那里发布了我的问题后,我被告知我工作的域名有谷歌授权的历史,它曾经有一个商业计划被激活,然后有人违反了谷歌的ToS。遗憾的是,普通用户无法检查你的域名过去是否违反了谷歌的ToS,所以我不得不等待谷歌支持团队的答复。
长话短说:如果你有一个域名在过去被谷歌禁止,你就有麻烦了,有两条出路:-更改您的域以获得未被禁止的新域-如果你想再次使用API工作,支付10000美元购买谷歌工作许可证(不是高级许可证,只是"基本"许可证)。价格不是幻想,这是谷歌支持告诉我的。
希望这将有助于人们找出这个记录不足的错误。
更新
文件已经更新,并添加了明确的解释:
RefererDeniedMapError在收到几封电子邮件通知后,您的应用程序因不符合谷歌地图API服务条款而被阻止。要对阻止提出上诉并审查您的实施情况,请填写此表格。您将在几个工作日内收到电子邮件回复。
https://developers.google.com/maps/documentation/javascript/error-messages
因此,从现在起,每个面临这个问题的人都可以提交上诉表。
您可以尝试本期中提出的建议。
"您可以尝试禁用IP到域名重定向(现在),并在上面的示例中使用您的IP。这不是一个纯粹的解决方案,但至少你可以在你的网站上有一张地图。"
如果答案对你有帮助,你也可以在这里查看。
如果以上任何解决方案对您都没有帮助,那么我认为您应该考虑Upsidown先生的建议。