通过 SSL 的 Google 地图选项
-
08-06-2019 - |
题
我们最近发现 Google Maps API 与 SSL 不能很好地配合。很公平,但是其他人有效使用过哪些克服这个问题的选择呢?
此时,映射API无法通过安全(SSL)连接可用。如果要在安全站点上运行地图API,则浏览器可能会警告用户屏幕上的非安全对象。
我们考虑了以下选项
- 拆分页面,以便信用卡收集(SSL 的要求)不在与 Google 地图相同的页面上。
- 切换到另一个地图提供商,例如 Virtual Earth。有传言说他们支持 SSL。
- 玩弄 IFRAME 的花招。听起来很笨拙。
- 代理对 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>