2014-11-21 25 views
1

我試圖加載GWT可視化的API繪製的圖表所示:如何加載GWT可視化API通過HTTPS

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

這在當地工作正常運行,但在應用程序服務器上運行()永遠不會被解僱。我碰到下面的錯誤在我的瀏覽器控制檯:

混合內容:在「https://mysite.myorg.com/mypage」加載頁面通過HTTPS,但要求一個不安全的腳本「http://www.google.com/jsapi?callback=__gwt_AjaxLoader_onLoad」。此請求已被阻止;內容必須通過HTTPS提供。

我在Visualization文檔中找不到任何東西來強制VisualizationUtils通過HTTPS加載API。誰能幫我這個?

回答

1

我使用相同的代碼(loadVisualizationApi),它通過https加載,所以我沒有看到任何錯誤。

這是AjaxLoader使用的代碼加載包:

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

正如你所看到的,它拿起從它的調用由窗口中的協議,所以沒有必要設置任何地方切換到https。

檢查您的gwt-visualization jar是否使用與上面相同的代碼。如果是這樣,請解決爲什麼Window.Location選擇了錯誤的協議。

+0

看起來像我的jar不包含相同的代碼。在版本1.0.2中,getProtocol()不存在,但它在版本1.1.2中。我安裝了最新的jar,並且它工作正常。 – Alex 2014-11-24 15:38:40