我似乎无法获得Vaadin(7)浏览器框架来打开https源代码,并且正在努力理解为什么会这样。使用 http://源,网页可以很好地打开,但是使用 https://www.google.co.uk 时我只会得到一个空白页面;TCPDUMP 显示请求已送达,但它不会显示在浏览器窗口中。
class BrowserWindow extends Window {
BrowserWindow(URI externalUri) {
center()
setClosable(false)
setDraggable(false)
setResizable(false)
setSizeFull()
setModal(true)
def ex = new ExternalResource(externalUri.toString())
BrowserFrame browser = new BrowserFrame("Browser", ex)
browser.setSizeFull()
content = browser
}
}
它适用于
getUI().getCurrent().addWindow(new BrowserWindow("http://www.truespeed.com")
但不是
getUI().getCurrent().addWindow(new BrowserWindow("https://www.google.co.uk")
有谁知道为什么会这样?
这通常是由混合(https 和 http)内容引起的问题。浏览器窗口可能正在尝试加载"潜在危险"的http页面/资源。如果打开浏览器控制台,您将能够看到未加载内容的错误。
简而言之:如果https父窗口尝试通过http加载资源,从而危及整个页面的安全性,则浏览器可以/不会加载该资源。
有关混合内容的更多详细信息,请参阅此处
确保您尝试加载的资源使用 https 来解决此问题(如果混合内容是问题所在)。