【问题标题】:authorizing a google maps api v3 key for access from https pages授权 google maps api v3 密钥以从 https 页面访问
【发布时间】:2012-03-29 21:13:06
【问题描述】:

我在 http 页面上使用了一个对我有用的密钥,但是当我尝试从 http 页面使用它时它不起作用。 它只是显示以下消息:

“Google 已禁用此应用程序的 Maps API。 提供的密钥不是有效的 Google API 密钥,或者未经授权 用于本网站上的 Google Maps Javascript API v3。如果你是 此应用程序的所有者,您可以了解如何获取有效密钥 这里:……”

在 api 控制台中,我设置了Referers: to *.mydomain.com/*

添加https://mydomain.com/page后,从https页面访问时才开始工作。

这是错误还是功能? *.mydomain.com/* 不应该也覆盖https://mydomain.com/page 吗?

【问题讨论】:

    标签: google-maps google-maps-api-3


    【解决方案1】:

    没有。我相信这不是一个错误,并且引用者是指域,而不是协议。它应该被明确记录,但正如您所发现的那样,它很容易设置。

    我怀疑文档中省略它的原因仅仅是因为控制台键是最近的一项创新,而文档还没有跟上(过去五年中常见的失败)。一个有益的副作用可能是您可以为 https 和 http 使用不同的键来分离统计报告,甚至使用不同的配额。

    【讨论】:

    • "referrer 是指域,而不是协议" ?但是我希望*.mydomain.com/* 匹配“推荐人”,如果它的https://mydomain.com/page ....
    • 您所期望的可能与 API 控制台的工作方式不同,您的发现证明了这一点。这并不意味着它是一个错误。它只是没有像你期望的那样工作。
    【解决方案2】:

    同意@Andrew Leach。

    这就是documentation 关于从 HTTPS 页面托管谷歌地图的说法:

    HTTPS

    如果您的应用程序是 HTTPS 应用程序,您可能希望通过 HTTPS 加载 Google Maps JavaScript API:

    <script src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&sensor=SET_TO_TRUE_OR_FALSE"
    type="text/javascript"></script>
    

    它没有提到对同一域的 HTTP 和 HTTPS 使用不同的密钥。 (我认为是因为您可以决定是否要在 HTTP 或 HTTPS 上托管您的页面。如果您改变主意更改协议,日志将从 0 开始,因为现在两者都是不同的应用程序。) 确保你完全按照他们的要求做,然后大声疾呼 BUG!

    【讨论】:

      【解决方案3】:

      您需要添加以下引用才能使其工作:

      https://mydomain.com/*
      
      https://www.mydomain.com/*
      
      http://www.mydomain.com/*
      
      http://mydomain.com/*
      

      为什么会有这些引荐来源?

      您网站的用户可以使用这些网址中的任何一个访问您的网站。所以最好给他们作为推荐人,这样你就可以避免这些错误。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-11-30
        • 2011-03-21
        • 1970-01-01
        • 2012-03-18
        • 1970-01-01
        • 1970-01-01
        • 2012-11-16
        • 1970-01-01
        相关资源
        最近更新 更多