我们最近发现 Google Maps API 与 SSL 不能很好地配合。很公平,但是其他人有效使用过哪些克服这个问题的选择呢?

地图 API 是否可以通过 SSL (HTTPS) 运行?

此时,映射API无法通过安全(SSL)连接可用。如果要在安全站点上运行地图API,则浏览器可能会警告用户屏幕上的非安全对象。

我们考虑了以下选项

  1. 拆分页面,以便信用卡收集(SSL 的要求)不在与 Google 地图相同的页面上。
  2. 切换到另一个地图提供商,例如 Virtual Earth。有传言说他们支持 SSL。
  3. 玩弄 IFRAME 的花招。听起来很笨拙。
  4. 代理对 Google 的调用。听起来开销很大。

还有其他选择吗?或者有人对我们考虑过的选项有深入了解吗?

有帮助吗?

解决方案

我同意前两个答案,在这种情况下,从可用性的角度来看,将这两个功能分成单独的屏幕可能会更好。您确实希望用户专注于输入完整且准确的信用卡信息,并且在同一屏幕上显示地图可能会分散注意力。

但郑重声明,Virtual Earth 确实完全支持 SSL。要启用它,您只需将脚本引用从 http:// 更改为 https:// 并将 &s=1 附加到 URL,例如

<script src="http://dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=6.1" type="text/javascript"></script>

变成

<script src="https://dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=6.1&s=1" type="text/javascript"></script>

其他提示

只是添加到此

http://googlegeodevelopers.blogspot.com/2011/03/maps-apis-over-ssl-now-available-to-all.html

尚未尝试将我的 SSL 地图(最终使用 Bing 地图 api)迁移回 Google,但很可能会这样做。

这似乎是一个业务要求/可用性问题 - 您是否有充分的理由将地图放在信用卡页面上?如果是这样,也许值得解决一些技术问题。

您可以尝试使用 地图牵引, ,这样您就可以切换到支持 SSL 的提供商,如果将来支持的话,再切换回 Google。

我会选择你的第一个解决方案。这使得用户可以专注于输入他们的信用卡详细信息。

然后,您可以将它们转移到另一个网页,该网页询问或向他们提供与 Google 地图相关的更多信息。

如果你是一个 Google 地图 API 高级版 客户,则支持 SSL。我们使用这个并且效果很好。

在 Google 提供 SSL 之前,我们代理了所有流量,并且效果良好。当您使用这种方法时,您会失去 Google CDN 的优势,并且您的 IP 可能会被禁止,因为您会产生大量流量。

如果您在 IE 9 上显示 Google 地图时收到安全警报,请使用

<script src="https://maps.google.com/maps?file=api&v=2&hl=en&tab=wl&z=6&sensor=true&key=<?php echo $key;?>
" type="text/javascript"></script>

代替

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

我刚刚删除了 http 协议并且它起作用了!

由此:

<script src="http://maps.google.com/maps/api/js?sensor=true" type="text/javascript"></script>

对此:

<script src="//maps.google.com/maps/api/js?sensor=true" type="text/javascript"></script>
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top