谷歌地图API引用者不被允许。

22

当我在我的网站上加载页面时,一些电脑会出现错误RefererNotAllowedMapError

RefererNotAllowedMapError

加载Google Maps JavaScript API的当前URL未添加到允许的引荐者列表中。请检查Google Cloud Console上API密钥的引荐者设置。

请参阅API密钥

在我测试的四台机器中,从三台机器的FireFox上运行正常。

通常这意味着该域未在我的API控制台中添加为引荐者,但事实上已经添加,并且在其他机器上也可以正常工作。

有人遇到过这个问题或能提供一些指导吗?


我在使用谷歌地图的 REST API 时,我的 Web 客户端也遇到了同样的问题。对我来说,只有 Firefox 在显示地图时出现问题,并显示“RefererNotAllowedMapError: https://developers.google.com/console/help/new/#apikeybestpractices”错误 - 有人有什么解决办法吗? - Freddy
我重新生成了API密钥,现在它在所有浏览器中都能正常工作。 - bwash70
@Freddy 我也遇到了同样的问题,只有 Firefox 显示这个消息,即使我允许该域名。 - Hamza Zafeer
9个回答

20

11

请尝试添加各种类型的网址,例如:

http://stackoverflow.com/*

http://www.stackoverflow.com/*

*.stackoverflow.com/*

肯定会起作用。


3
请注意表达式开头的DOT,它是一个字符! *.stackoverflow.com/* // 这将不适用于 http://stackoverflow.com ,并且允许域名如 demo.stackoverflow.com。
请使用以下内容替换上述内容: *://stackoverflow.com/* // 现在它将覆盖所有域名变化但不包括子域名。

2
这将允许http://notstackoverflow.com使用您的API密钥。所以这不是一个好主意。 - Gregoire D.
请注意,*.stackoverflow.com/* 也允许 not.stackoverflow.com 使用 API。更重要的是,“点”字符将不允许 http://stackoverflow.com 使用 API。 - DevWL
@GregoireD。这不是真的,因为它是一个“.”字符,而不是任何字符的正则表达式占位符。因此,它将允许子域名但禁止主域名。这就是为什么您需要添加*://stackoverflow.com/*,具体取决于您是否想包括子域名。 - DevWL

2

我要使用地点 API,必须开启地图 JavaScript API


1
感谢你的分享!这真的很难懂。。当我查看API列表时,我无法找到“Maps Javascript API”,但显然有一个单独的页面,我必须去启用API才能显示它...我花了30分钟才弄清楚这个问题... - BlackSoil

1
这是因为您的Google地图API密钥不是浏览器密钥,所以会出现错误。请创建一个新的密钥并选择“浏览器密钥”选项,该选项在创建新密钥时可用。

1
我曾遇到一个类似的问题,我试图使用API但是只限于地图产品。即使http referrer框中没有任何内容(对所有人开放),它也生成了相同的错误。重新创建一个没有任何产品限制的新密钥后,问题就解决了。

0

对于不同的开发者和不同的情况,每个/这样的Maps Javascript API错误的解决方案都是不同的。谷歌提供了一个详细描述错误的列表在这里

尽管如此,请参考下面的快照: Maps Javascript API restrictions

  1. 如上所示,在应用程序限制下,仅选择HTTP引用程序是不够的。您必须添加一个URL(即调用API以呈现地图的网站的URL)。
  2. 现在需要在URL中提到确切的页面(在我的情况下是联系我们页面),该页面将请求API,而不仅仅是域名。
  3. 请查看右侧文档中提供的示例。
  4. 在域名URL后添加/*,例如http://www.telesuprecon.com/*,将使请求可以从您网站内的任何页面进行。

0
唯一有效的方法是创建一个没有任何限制(包括API限制)的全新密钥。这在生产环境中不是可行的解决方案,但它允许我们继续开发。

0

创建一个新的浏览器密钥对我很有帮助。 https://console.developers.google.com/projectselector/apis/credentials

RefererNotAllowedMapError错误 当前加载谷歌地图JavaScript API的URL未被添加到允许的引用者列表中。请在Google API控制台上检查API密钥的引用设置。

请参见Google API控制台中的API密钥。有关更多信息,请参阅安全使用API密钥的最佳实践。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接