如何通过HTTPS加载GWT Visualization API

时间:2014-11-21 21:28:22

标签: java javascript gwt https google-visualization

我正在尝试加载GWT Visualization Api来绘制如下图表:

Runnable onLoadCallback = new Runnable() {
        public void run() {
            LineChart chart = new LineChart(createTable(), createOptions());
            MyPage.this.add(chart);
        }
    };
VisualizationUtils.loadVisualizationApi(onLoadCallback, LineChart.PACKAGE);

这在本地运行良好,但在应用程序服务器上,永远不会触发run()。我在浏览器控制台中收到以下错误:

  

混合内容:“https://mysite.myorg.com/mypage”页面是通过HTTPS加载的,但是请求了一个不安全的脚本“http://www.google.com/jsapi?callback=__gwt_AjaxLoader_onLoad”。此请求已被阻止;内容必须通过HTTPS提供。

我在Visualization文档中找不到强制VisualizationUtils通过HTTPS加载API的任何内容。任何人都可以帮我这个吗?

1 个答案:

答案 0 :(得分:2)

我使用相同的代码(loadVisualizationApi),并加载https以便我看到没有错误。

这是AjaxLoader用于加载包的代码:

private static String getProtocol() {
    if (Window.Location.getProtocol().equals("https:")) {
        return "https:";
    }
    return "http:";
}

正如您所看到的,它从发出呼叫的窗口中选择协议,因此无需在任何地方进行设置即可切换到https。

检查您的gwt-visualization jar是否使用与上面相同的代码。如果是,请解决Window.Location选择错误协议的原因。