Google Maps JavaScript API RefererNotAllowedMapError

时间:2016-02-09 09:28:29

标签: 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)”

我的凭据页面缺少添加引荐来接受的可能性,因此目前无法提供涉及添加引用的解决方案。

我的凭据页面:

enter image description here

为什么我们会收到错误?我们如何解决它?

29 个答案:

答案 0 :(得分:146)

我知道这是一个已经有几个答案的旧问题,但我遇到了同样的问题,对我来说问题是我遵循console.developers.google.com上提供的示例并以格式{输入了我的域名{1}}。这根本不起作用,我尝试添加各种变体,如*.domain.tld/*domain.tlddomain.tld/*等。

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

更新:Google最终更新了占位符以立即包含https://domain.tld/*

Google Maps API referrer input field

答案 1 :(得分:18)

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

“引用者”列表比它允许的更加挑剔。 (当然,它应该更宽容。)以下是一些让我小时发现的规则:

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

答案 2 :(得分:16)

根据文档,'RefererNotAllowedMapError'表示

  

加载Google Maps JavaScript API的当前网址尚未包含   添加到允许的引荐列表中。请检查推荐人   在Google Developers Console上设置API密钥。

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

enter image description here

答案 3 :(得分:14)

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

*.example.com/*

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

*example.com/*

答案 4 :(得分:11)

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

答案 5 :(得分:9)

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

我尝试了所有上述方法,包括星号,域顶级域名(TLD),正斜杠,反斜杠以及其他所有内容,甚至最后只输入了一个URL作为最后的希望。

所有这些都不起作用,最后我意识到Google还要求您现在指定要使用的API(请参见屏幕截图)

enter image description here

我没有启用我需要的功能(对我来说就是Maps JavaScript API)

启用后,使用以下命令一切正常:

http://www.example.com/ *

我希望能对某人有所帮助! :)

答案 6 :(得分:9)

根据google docs  发生这种情况的原因是您使用Google Maps API的urlnot registered中的list of allowed referrers

编辑:

来自Google Docs

  

指定域的所有子域也已获得授权。

     

如果授权http://example.com,则http://www.example.com也会获得授权。反之亦然:如果授权http://www.example.com,则http://example.com未经授权

因此,请配置http://testdomain.com域名,然后您的http://www.testdomain.com即可开始工作。

答案 7 :(得分: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

答案 8 :(得分:4)

几年来有许多假定的解决方案,有些不再起作用,有些则从未起作用,因此,我的最新动态是在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),创建了新的凭证(使用完全相同的设置),并且此后一直有效。
  • 仅添加协议和域似乎不包含子域。
  • 对于其中一个域,工作配置如下:

Screenshot from Google API configuration

(作为文本:)

Accept requests from these HTTP referrers (web sites)
    https://*.example.com/*
    https://example.com/*
    http://*.example.com/*
    http://example.com/*

答案 9 :(得分:4)

enter image description here

接受来自这些HTTP引荐来源(网站)的请求

编写localhost目录路径

答案 10 :(得分:3)

对于更深层次的嵌套页面

如果您在项目文件夹中有项目或嵌套页面

http://yourdomain.com/your-folder/your-page您可以在

中输入

http://yourdomain.com/*/*

重要的部分是/*/*/*,取决于您需要走多远

似乎*/不匹配或进入更深的路径..

这将为您提供完整的域名访问权限,除非您有更深的嵌套...

答案 11 :(得分:3)

问题
Google建议使用*.example.com/*
格式。

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

答案 12 :(得分:3)

我遇到了同样的错误:

enter image description here

此链接讨论如何设置API密钥限制:https://cloud.google.com/docs/authentication/api-keys#adding_http_restrictions

在我的情况下,问题在于我正在使用此限制:

  

HTTP引荐来源网址(网站)接受来自这些HTTP引荐来源网址的请求   (网站)(可选)对通配符使用*。如果您将此留空,   任何引荐来源的请求都会被接受。确保添加引荐来源   在生产中使用此密钥之前。   https://*.example.net/*

这意味着诸如https://www.example.nethttps://m.example.nethttps://www.example.net/San-salvador/之类的URL可以使用。但是,诸如https://example.nethttps://example.nethttps://example.net/San-salvador/之类的URL将不起作用。我只需要添加第二个引荐来源网址:

  

https://example.net/*

那为我解决了这个问题。

答案 13 :(得分:3)

您显示了api凭据页面的屏幕截图,但您必须单击“浏览器密钥1”并从那里添加引用。

答案 14 :(得分:2)

我最终使用谷歌的这个提示让我的工作: (https://support.google.com/webmasters/answer/35179

以下是我们对域名和网站的定义。这些定义特定于Search Console验证:

http://example.com/ - A site (because it includes the http:// prefix)
example.com/ - A domain (because it doesn't include a protocol prefix)
puppies.example.com/ - A subdomain of example.com
http://example.com/petstore/ - A subdirectory of http://example.com site

答案 15 :(得分:2)

我添加了2个网站域,在子域中设置“ *”不起作用,但是使用相同的Google Map API密钥为我的网站使用了特定的子域“ WWW”和非子域。

dont' use "*" in subdomain

希望有帮助。

答案 16 :(得分:2)

子域中不允许

通配符(星号)

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

忘记Google在占位符上的提示,这是不允许的。

答案 17 :(得分:2)

我也很难使它正常工作,但是这里有一些提示:

  • 设置为引荐来源网址的网址包括http,例如http://example.com/*
  • 已启用Google Maps JavaScript API
  • 为此帐户设置了结算

解决以上所有问题后,地图将按预期显示。

答案 18 :(得分:1)

http://www.example.com/ *经过数天和数天的努力后,已经为我工作了。

答案 19 :(得分:1)

在我发现RefererNotAllowedMapError可能是由于没有将计费帐户链接到项目所致,这些修复方法都无法为我服务。因此,请确保激活您的免费试用版。

答案 20 :(得分:1)

  1. 您的帐单已启用

  2. 您的网站已添加到 Google控制台

  3. 您的网站已添加到您应用中的引荐来源网址。

  4. (对www和无www都使用通配符)

http://www.example.com/ *和http://example.com/ *

  1. 已启用Javascript Maps,并且您使用的是正确的凭据

  2. 已将网站添加到您的DNS中以启用上方的Google控制台。

  3. 微笑有效!

答案 21 :(得分:1)

我试图使用 Places API(自动完成),并且还必须在Google Cloud Console中启用 Maps Javascript API ,然后Places API才能运行。< / p>

答案 22 :(得分:0)

在现场检查您的装饰。要加载Google Maps JavaScript API,请使用此类脚本标记

<script src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=initMap"
async defer></script>

我在function.php文件中的Wordpress网站上使用此声明

wp_enqueue_script("google-maps-v3", "//maps.google.com/maps/api/js?key=YOUR_API_KEY", false, array(), false, true);

我已经在这种格式上设置了API密钥,并且工作正常

http://my-domain-name(without www).com/*

此声明无效

*.my-domain-name.com/*

答案 23 :(得分:0)

以我的经验

  

http://www.example.com

工作正常 但是,https末尾需要/ *

答案 24 :(得分:0)

Chrome的Javascript控制台建议我在HTTP引荐来源网址列表中声明整个页面地址,在这种情况下,http://mywebsite.com/map.htm尽管确切的地址是http://www.mywebsite.com/map.htm-我已经按照其他人的建议列出了通配符样式,但是这是对我有用的唯一方法。

答案 25 :(得分:0)

这是另一款糟糕的Google产品,

我发现的问题是,如果您通过IP地址限制API密钥,它将无法正常工作……但这离Google太远了,这一点很明确……直到进行故障排除和研究之后我发现:

  

受IP地址限制的API密钥只能与Web一起使用   旨在从服务器端使用的服务(例如   地理编码API和其他Web服务API)。这些大多数Web服务   在Maps JavaScript API中具有等效的服务(例如,   请参阅地址解析服务)。要使用Maps JavaScript API客户端   服务,则需要创建一个单独的API密钥,该密钥可以是   受HTTP Referrers限制保护的安全性(请参阅限制API   键)。

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

FFS Google ...非常重要的信息,将有助于您在设置过程中加以阐明...

答案 26 :(得分:0)

这对我有用。 api键设置下有2种主要的限制类别:

  • Application restrictions
  • API restrictions

应用限制:

  

在“引荐来源网址”部分的底部添加您的网站网址   “ http://www.grupocamaleon.com/boceto/aerial-simple.html”。根据各种要求,该节的右侧有示例规则。

Application restrictions

API限制:

  

受API限制,您必须从下拉列表中明确选择“ Maps Javascript API” ,因为我们唯一的密钥仅用于调用Google Maps API,并尽可能保存请参阅下面的快照。我希望这对您有用.....为我工作

enter image description here

检查您的脚本:

此问题也可能是由于script标签内部的密钥输入不正确所引起的。应该是这样的:

  <script async defer src="https://maps.googleapis.com/maps/api/jskey=YOUR_API_KEY&callback=initMap"
  type="text/javascript"></script>

答案 27 :(得分:0)

删除限制(无)对我有用。

答案 28 :(得分:-1)

为Google项目启用结算功能解决了该问题。