如果Google Ajax API不可用,那么最好的后备是什么(因为Google不允许在本地安装它)?

Zo7*_*o72 13 javascript ajax

在我的网站上,我有:

...
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
...
Run Code Online (Sandbox Code Playgroud)

上面的脚本是用于动态加载其他资源的Google脚本.(例如Google图表API)

这有99.99%的时间.但是,我刚刚找到一个客户,由于某些原因让他的公司限制访问google.com.

因此,我的网站只是抛出了一个JavaScript错误.

现在我知道如何处理,我可以检查window.Google是否存在.但我的问题是

"解决这个问题的标准方法是什么?"

换句话说,如果你嵌入第三方JavaScript,你如何最好地处理他们的JS不可用?

注意:非常重要

您无法在本地或在Intranet上托管图表代码.

请参阅Google的常见问题解答:https://developers.google.com/chart/interactive/faq#localdownload

我可以在本地或在Intranet上下载和托管图表代码吗?

抱歉; 我们的服务条款不允许您下载,保存或托管Google.load或Google.visualization代码.

Jan*_*fer 10

没有真正的选择.由于Google的服务条款,您无法在不访问google.com的情况下使用Google API.

  • 检查与Google和iform用户的连接,该功能不可用
  • 开发自己的或使用非谷歌API.如果可以,您仍然可以使用Google


Jor*_*ray 9

解决方案是您的客户的公司审查其内容过滤策略.谷歌在之前关于离线访问的回答中非常明确:

...您的计算机必须能够实时访问http://www.google.com/jsapi才能使用图表.

您根据其条款和条件使用第三方解决方案,这自然会限制您的客户如何使用该解决方案.您需要坚定立场或找到更加自由许可的解决方案.(无论如何,您更有可能成功说服您的客户的IT部门,而不是请求Google更改其服务条款.)


对于第三方JS的API可能无法加载的更一般的情况,但对于您允许保留一个本地副本服务器上,看到了这个问题.


Uoo*_*ooo 7

你可以这样试试:

您可以使用指向服务器的链接,而不是使用指向您要使用的Google库的直接链接:

<script type="text/javascript" src="https://www.myserver.com/jsapi"></script>
Run Code Online (Sandbox Code Playgroud)

当您的服务器收到对此URL的传入请求时,您的服务器现在向Google发出请求以获取API并将响应发送给客户端.

这意味着您不能在本地或服务器上的任何位置安装API,并且始终直接从Google获取最实际的版本.人们也不需要访问Google(如您提到的公司),因此可以使用您的服务.

  • @ w4rumy不,这是不可能的.在执行并替换所有对谷歌的引用(但不是名为google的对象)之前,您必须浏览[JSAPI代码](https://www.google.com/jsapi)...查看该代码.要说这将是一个复杂的将是轻描淡写,你将打破谷歌服务条款. (2认同)