【问题标题】:Google URL Shortener API with Javascript带有 Javascript 的 Google URL Shortener API
【发布时间】:2016-02-26 08:22:30
【问题描述】:

我没有收到错误,但是当我运行以下函数时 Javascript 代码停止执行:

function initGoogleURL() {
    gapi.client.setApiKey(myAPIKey);
    gapi.client.load('urlshortener', 'v1').then(function(value) {
        console.log("success!");
        googleReady = true; // Success!
    }, function(reason) {
        console.log(reason); // Error!
    });
}

我在控制台中没有看到消息。其余代码停止执行,即使它不依赖于此执行路径。

任何想法为什么会发生这种情况?

【问题讨论】:

  • 能否在问题中包含“其余代码”
  • myAPIKey 定义了吗?
  • 其余的代码很长,如果我注释掉对 initGoogleURL() 的调用,甚至只是 initGoogleURL 函数 (gapi.client.load. ..).
  • 是的,我只是将 myAPIKey 作为真实密钥的占位符,我直接在代码中。

标签: javascript api google-url-shortener


【解决方案1】:

首先 - 您在控制台中没有收到任何消息这一事实令人担忧。你确定你正在执行代码吗?你有电话吗

initGoogleURL();

在您的代码中的某个地方?假设你这样做,我认为这个问题类似于here 描述的问题。我的理由是如果我在函数上设置超时,例如:

setTimeout(function(){
  initGoogleURL();
}, 5000) // Second argument is time to wait before executing the function

然后,我会打印出一条成功消息。如果您看到类似的行为,则您的问题是您在完全加载之前尝试使用 google api。对此的解决方案是为成功加载 API 库时定义一个回调处理程序,如 HTML 中的 import 语句中所述,例如:

<script src="https://apis.google.com/js/client.js?onload=OnLoadCallback"></script>

【讨论】:

  • 是的,非常令人担忧。我将它设置在一个运行良好的站点上,将它迁移到另一个站点,但它没有按描述工作。这两个站点都位于此 API 的 Google Developer Console 中的“接受来自这些 HTTP 引荐来源网址(网站)的请求”部分。我尝试使用 onload= 调用您所描述的函数,但一旦到达“gapi.client.load ...”行,它也会失败。
  • 我确定我正在执行代码,因为如果我将 console.log 作为函数的第一行,我会得到该日志。
猜你喜欢
  • 2017-02-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多