我正在尝试加载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的任何内容。任何人都可以帮我这个吗?
答案 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选择错误协议的原因。