2014-01-10 71 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. 要求您的客户将浏览器的安全属性设置得尽可能低,确保禁用证书验证要求,并且问他们是否仍然有问题。 (如果他们的问题消失了,他们可能需要手动更新他们的本地证书)