首页 文章

Google Maps JavaScript API RefererNotAllowedMapError

提问于
浏览
80

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

我们已经签署了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

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

19 回答

  • 133

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

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

    更新:Google最终更新了占位符以包含 http

    Google Maps API referrer input field

  • 1

    根据文档,“RefererNotAllowedMapError”表示

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

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

    enter image description here

  • 4

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

    *.example.com/*
    

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

    *example.com/*
    
  • 12

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

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

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

  • 2

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

  • 4

    根据google docs发生这种情况是因为您正在使用Google Maps API的 urlnot registeredlist 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

    enter image description here

    Accept requests from these HTTP referrers (web sites)

    写localhost目录路径

  • 1

    我发现即使你的 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

  • 1

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

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

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

    enter image description here

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

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

    http://www.example.com/ *

    我希望能帮助别人! :)

  • 4

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

  • 9

    For deeper nested pages

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

    http://yourdomain.com/your-folder/your-page 你可以输入

    http://yourdomain.com/*/*

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

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

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

  • 0

    我最终使用谷歌的这个提示让我的工作:(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
    
  • 1

    几年来有许多假想的解决方案,有些不再工作,有些从未做过,因此我的最新工作在2018年7月结束 .

    Setup:

    Google Maps JavaScript API必须正常使用...

    • 多个域调用API: example.comexample.net

    • 任意子域: user22656.example.com

    • 安全和标准HTTP协议: http://www.example.com/https://example.net/

    • 不定路径结构(即大量不同的URL路径)

    Solution:

    • 实际上使用占位符中的模式: <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/*
    
  • 14

    http://www.example.com/ *经过几天和几天的尝试后,对我有用 .

  • 2

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

  • 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/*

    这解决了我的问题 .

  • 16

    直到我发现 RefererNotAllowedMapError 可能是由于没有与项目相关联的结算帐户造成的,这些修复程序都没有对我有用 . 因此,请务必激活免费试用版或其他任何内容 .

  • 2

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

    dont' use "*" in subdomain

    希望它有所帮助 .

  • 1

    在现场检查您的装饰 . 要加载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/*
    

相关问题