2014-01-10 94 views
3

某些客戶端無法在生產環境中加載Google API,但我無法找到我的代碼有任何問題。RequireJS異步! Google客戶端API的插件 - 加載超時?

下面是我得到了什麼:Load async resource with requirejs timeout

顯示錯誤消息是:

Uncaught Error: Load timeout for modules: async! https://apis.google.com/js/client.js!onload_unnormalized2,async!https://apis.google.com/js/client.js!onload http://requirejs.org/docs/errors.html#timeout

此代碼不

// Load Google's JavaScript Client API using requireJS !async plugin. 
// You can learn more about the async plugin here: https://github.com/millermedeiros/requirejs-plugins/blob/master/src/async.js 
define([ 
    'async!https://apis.google.com/js/client.js!onload' 
], function() { 
    'use strict'; 

    console.log("googleAPI has loaded", window.gapi, window.gapi.client); 

    return window.gapi; 
}); 

我從拉此信息在本地爲我提供任何問題。它加載得很好。

第一步我把調試問題在requireConfig從7增加waitMinutes到90我想,也許很多人都連接速度非常慢:

define(function() { 

    require.config({ 

     baseUrl: 'js/', 

     enforceDefine: true, 

     // I'm seeing load timeouts on in googleAPI -- seeing if increasing wait time helps. 
     waitSeconds: 90, 
     ... 
    }); 
}); 

這似乎並沒有影響到這個問題。我仍然看到許多客戶報告問題。

在這種情況下可以使用其他哪些調試選項?謝謝

回答

0

因此,當我嘗試在Internet Explorer 8中調試我的應用程序時,遇到了類似的問題,也許我的經驗與客戶端類似。

對我來說,我發現我收到一個超時錯誤,因爲我的測試瀏覽器在通過https檢索資源時由於過期的根證書而出現問題。我運行Windows 7當我試圖加載我的申請,我收到你在你的文章中提到了同樣的錯誤在一個虛擬機我的Internet Explorer測試的所有:

Uncaught Error: Load timeout for modules: 
async!https://apis.google.com/js/client.js!onload_unnormalized2,async!https://apis.google.com/js/client.js!onload http://requirejs.org/docs/errors.html#timeout 

我試過手動URL和被帶到我的瀏覽器中有一個「不受信任的證書」警告頁面。這使我感到困惑,但後來我發現我的Windows操作系統上的根證書已過期,並導致https握手失敗。異步插件似乎消耗了身份驗證異常,只是等待某些事情奇蹟般地通過,導致超時錯誤。是

我找到工作的解決方案如下:

  1. 更新操作系統
  2. 更改我的瀏覽器的安全性能不要求證書認證

至於根證書進一步調試的建議,我有兩個想法:

  1. 試着設置你的瀏覽器的安全屬性儘可能高,並查看是否可以重新創建問題(或者只是暫時刪除本地證書)
  2. 要求您的客戶將瀏覽器的安全屬性設置得儘可能低,確保禁用證書驗證要求,並且問他們是否仍然有問題。 (如果他們的問題消失了,他們可能需要手動更新他們的本地證書)