java - 如何通过 HTTPS 加载 GWT 可视化 API

标签 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() 永远不会被触发。我在浏览器控制台中收到以下错误:

Mixed Content: The page at 'https://mysite.myorg.com/mypage' was loaded over HTTPS, but requested an insecure script 'http://www.google.com/jsapi?callback=__gwt_AjaxLoader_onLoad'. This request has been blocked; the content must be served over HTTPS.

我在可视化文档中找不到任何内容来强制 VisualizationUtils 通过 HTTPS 加载 API。谁能帮我解决这个问题吗?

最佳答案

我使用相同的代码 (loadVisualizationApi),它通过 https 加载,因此我没有看到任何错误。

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

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

如您所见,它从进行调用的窗口中获取协议(protocol),因此无需在任何地方进行设置即可切换到 https。

检查您的 gwt-visualization jar 是否使用与上面相同的代码。如果是这样,请排除 Window.Location 选择错误协议(protocol)的原因。

关于java - 如何通过 HTTPS 加载 GWT 可视化 API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27070663/

相关文章:

java - 如何在另一个类中调用一个类的main方法?

java.net.SocketException : Broken pipe smpp. 逻辑库

java - 在 Web 应用程序中管理 EntityManagerFactory

javascript - 替换节点的所有子节点时是否可以测量 DOM 渲染时间?

java - 从 Apache CouchDB 1.6.1 获取印地语数据

java - GWT 任意 HTML

JavaFX:如果另一个对象处于 Activity 状态,则用于禁用按钮的 FXML 脚本

Java:如何实现一个接受 2 个数组并返回 2 个数组的方法?

javascript - 将变量放置在重定向链接中

javascript - 合成:如何根据单选按钮中的选定选项动态更改 Canvas 新绘图?