Google Maps JavaScript API RefererNotAllowedMapError

Gru*_*vos 115 javascript google-maps google-maps-api-3

我们正在尝试为我们的一个客户开发一个地理广场应用程序,我们希望首先在自己的域中进行测试.

我们已经签署了Google Maps JavaScript API,并且我们拥有有效的浏览器密钥,我们的域名www.grupocamaleon.com已被授权使用该密钥.

但是我们无法使最简单的例子运行而没有错误.

在我们的域和我们的密钥中,我们有以下演示:

(1)http://www.grupocamaleon.com/boceto/aerial-simple.html

但它不起作用,Firebug控制台说:

"Google Maps API错误:Google Maps API错误:RefererNotAllowedMapError(指向RefererNotAllowedMapError上的Google文档链接)您要授权的网站网址:(1)"

我的凭据页面缺少添加引用来接受的可能性,因此现在无法实现涉及添加引用的解决方案.

我的凭证页面:

在此输入图像描述

为什么我们会收到这个错误?我们该如何解决?TIA

pow*_*uoy 157

我知道这是一个已经有几个答案的旧问题,但我遇到了同样的问题,对我来说问题是我遵循console.developers.google.com上提供的示例并以格式输入了我的域名*.domain.tld/*.这并没有在所有的工作,我尝试添加各种变化,这个像domain.tld,domain.tld/*,*.domain.tld等等.

为我解决的是添加实际的协议 ; http://domain.tld/*是我在网站上工作所需的唯一一个.我想https://domain.tld/*如果我要切换到HTTPS,我需要添加.

更新:谷歌终于更新了占位符,http现在包括:

Google Maps API引荐来源输入字段

  • 这个答案是唯一让我的代码工作的答案.我可以确认Google提供的示例不起作用. (5认同)
  • 如果您有多个子域,http://*.example.com和https://*.example.com可以覆盖所有基础 (2认同)

Ric*_*mes 20

来吧Google,你们比API Credential页面更聪明.(我知道,因为我有两个儿子在那里工作.)

"推荐人"列表比它允许的更加挑剔.(当然,它应该更宽容.)以下是一些花了我几个小时才发现的规则:

可能还有其他规则,但这是一个乏味的猜谜游戏.


Dan*_*iro 20

通配符(星号)都没有在子域部分允许的。

  • 错误: *.example.com/*
  • 右图: example.com/*

忘记谷歌在占位符上所说的,这是不允许的。

  • 您可以设置为 `sc.maindomain.com/*` (2认同)
  • 谢谢你!谷歌仍然有错误的文档! (2认同)

TRo*_*ose 18

根据文档,"RefererNotAllowedMapError"表示

加载Google Maps JavaScript API的当前网址尚未添加到允许的引荐来源列表中.请在Google Developers Console上查看API密钥的引荐来源设置.

我为自己的个人/工作用途设置了Google Maps Embed API,到目前为止还没有指定任何HTTP引用.我没有注册错误.您的设置必须使Google认为您正在访问的网址未注册或允许.

在此输入图像描述


ow3*_*w3n 15

我尝试了很多引用变种并等待了5分钟,直到我意识到Google在表单字段中填充的示例存在缺陷.他们展示:

*.example.com/*
Run Code Online (Sandbox Code Playgroud)

但是,仅当您拥有subdomain.www.在您的域名前面时才有效.以下内容立即为我工作(省略了Google示例中的领先时期):

*example.com/*
Run Code Online (Sandbox Code Playgroud)

  • 不好的想法 - 有人可以创建`hackexample.com`并使用你的api (7认同)
  • @HyderA - 更有可能的是,有人会注册一堆免费的谷歌帐户来获得额外的地图加载. (3认同)

小智 13

请注意,如果您只是更改它,设置可能需要5分钟才能生效.


Dav*_*son 10

检查您是否启用了正确的APIS.

我尝试了以上所有,星号,域名tld,正斜杠,反斜杠和所有内容,甚至最后只输入一个url作为最后的希望.

所有这些都不起作用,最后我意识到谷歌还要求你现在指定你想要使用哪个API(见截图)

在此输入图像描述

我没有启用我需要的功能(对我而言是Maps JavaScript API)

一旦我启用它,所有工作正常使用:

http://www.example.com/*

我希望能帮助别人!:)


RIY*_*HAN 9

根据谷歌文档, 这是因为url您正在使用谷歌地图API,它not registeredlist of allowed referrers

编辑:

来自Google文档

指定域的所有子域也都是经过授权的.

如果http://example.com已获得授权,则http://www.example.com也会获得授权.反之亦然:如果http://www.example.com获得授权,则http://example.com不一定获得授权

所以,请配置http://testdomain.com域名,然后你的http://www.testdomain.com开始工作.

  • 似乎逻辑颠倒了?除非我错过了什么。 (2认同)

Dar*_*phy 9

问题
Google 建议的格式*.example.com/*
此格式不起作用。

解决方案
检查浏览器控制台是否有 Google Maps JavaScript API 错误: RefererNotAllowedMapError
在错误下方应该有:“您要授权的站点 URL: https: //example.com/”
使用该 url 作为引荐来源网址,并在其末尾添加通配符 *(在本例中为https://example.com/ *)。

  • 嘿,我尝试了这个以及我在 SO 上发现的所有其他变体,但没有任何运气。2021年有什么变化吗? (3认同)

Owe*_*ack 8

这些修复对我来说都不起作用,直到我发现这RefererNotAllowedMapError可能是由于没有与该项目链接的计费帐户造成的。因此,请确保激活您的免费试用版或其他任何内容。


hir*_*shi 7

我发现即使你HTTP Referreres的有效,也有错误的API Restrictions原因Google Maps JavaScript API error: RefererNotAllowedMapError.

例如:

  • 您正在使用Javascript API作为密钥.
  • 添加http://localhost/*Application Restrictions / HTTP Referrences
  • 选择Maps Embed API而不是Maps Javascript API
  • 这导致 RefererNotAllowedMapError


php*_*der 6

这是另一个糟糕的谷歌产品,实施起来很糟糕。

我发现的问题是,如果您通过 IP 地址限制 API 密钥,它将无法工作......但谷歌远非明确这一点......直到故障排除和研究我发现:

具有 IP 地址限制的 API 密钥只能用于旨在从服务器端使用的 Web 服务(例如地理编码 API 和其他 Web 服务 API)。大多数这些 Web 服务在 Maps JavaScript API 中都有等效的服务(例如,请参阅地理编码服务)。要使用 Maps JavaScript API 客户端服务,您需要创建一个单独的 API 密钥,该密钥可以通过 HTTP 引荐来源限制进行保护(请参阅限制 API 密钥)。

https://developers.google.com/maps/documentation/javascript/error-messages

FFS 谷歌......非常重要的信息,可以很好地在设置时澄清......


dak*_*kab 5

几年来有许多假设的解决方案,有些不再有效,有些则从未使用过,因此我的最新数据是在2018年7月底开始的。

设定:

Google Maps JavaScript API必须与…兼容。

  • 多个域调用API:example.comexample.net
  • 任意子域: user22656.example.com,等等。
  • 安全和标准HTTP协议:http://www.example.com/https://example.net/
  • 不确定的路径结构(即大量不同的URL路径)

解:

  • 实际使用占位符中的模式: <https (or) http>://*.example.com/*
  • 不省略协议,而是在每个域中添加两个条目(每个协议一个)。
  • 子域的附加条目(带有 *.主机名开头)。
  • 我觉得RefererNotAllowedMapError使用正确的配置(并且等待了足够的时间)后,错误仍然出现。我删除了凭证密钥,重复了请求(现在InvalidKeyMapError),创建了新的凭证(使用完全相同的设置),并且此后一直有效。
  • 仅添加协议和域似乎没有包含子域。
  • 对于其中一个域,工作配置如下所示:

Google API配置的屏幕截图

(作为文字:)

Accept requests from these HTTP referrers (web sites)
    https://*.example.com/*
    https://example.com/*
    http://*.example.com/*
    http://example.com/*
Run Code Online (Sandbox Code Playgroud)