2

我正在开发一个使用谷歌地球插件的网络应用程序。最近,增加了让非公共用户登录的新要求,这意味着一些用户现在通过 https 使用该网站。在测试中出现问题的是自定义地标图标(他们使用 http 工作)。

这些图标托管在为页面提供服务的同一台服务器上。

以下是每个协议的网址。

 http - http://localhost/Images/yellow.png
 https - https://localhost/Images/yellow.png

我可以点击该链接,图像将按您的预期显示。

图像 href 在动态生成的 kml 中被声明为图标样式。

我想避免通过 http 加载图像,因为我认为这会导致 Internet Explorer 向用户显示混合内容警告。

如何在使用 https 时正确加载图像?

4

1 回答 1

0

我自己一直在努力解决这个问题——简短的回答是这行不通。如果内容是从生成任何类型的错误/提示(身份验证、无效证书等)的 HTTPS 站点提供的,则插件将不会加载内容。

有趣的是,桌面客户端运行良好,并在必要时提示用户输入凭据。但是,两个客户端都不允许使用不受信任的证书在场外提供内容。

我发现的唯一解决方法是:

  • 在托管内容的服务器上使用受信任的 HTTPS 证书(信任客户端系统上的证书或仅使用真实证书。)
  • 不要使用 HTTPS 基本身份验证,因为这将始终生成 401/Challenge 响应,Web 浏览器客户端将简单地忽略这些响应
  • 如果需要身份验证,请使用 NTLM 身份验证和常见(例如,域)登录。如果您在 Interent Explorer(或 .NET WebBrowserControl)中加载插件,则身份验证将得到正确处理并显示图像。

上周我参加了谷歌地球管理员的培训,培训师证实了这个“错误”。它应该在插件的下一个版本中得到修复(它实际上可能已经修复了——你使用的是什么版本的插件?)

于 2012-12-23T22:01:44.247 回答