$ .getJSON调用不起作用

时间:2017-01-02 11:28:27

标签: jquery ajax

我是代码的初学者,现在正在开展FCC的挑战。 问题是我无法在codepen中运行$ .getJSON调用。 我已经阅读了有关Stack Overflow的上一个问题,但仍然无法理解。所以请有人清楚地解决我的代码学习障碍。

$(document).ready(function(){
var url = "https://api.twitch.tv/kraken/streams/freecodecamp?callback=?";
 $.getJSON(url,function(data1){
   if(data1.stream===null){
     $("#fccStatus").html("FCC is currently OFFLINE");
   }
   else{
     $("#fccStatus").html("FCC is ONLINE");
   }
 });
});

我甚至无法在codepen中运行此代码

$(document).ready(function(){
  $.getJSON('data.json',function(result){
    alert("success");
  });
});

我正在使用谷歌浏览器,但也在Firefox中试过这个

HTML代码如下:

 <div class="container">
      <div id="header" class="text-center">
  <h1>TwitchTV JSON API</h1>
  <h2>Free Code Camp</h2>
  <h3 id="fccStatus"></h3>
  </div>
  <div class="row">
    <h1>
    <div class="col-md-4">
      Logo:
      </div>
     <div class="col-md-4">
      Display Name:
      </div>
      <div class="col-md-4">
      Status:
      </div>
    </h1>
  </div>
  <div id="followerInfo">

  </div>
</div>

1 个答案:

答案 0 :(得分:0)

编辑:你在你的codepen中包含了jquery-ui和NOT jquery,因此它不起作用! Twitch更改了它的API,如果你想对他们的API发出任何请求,你需要注册一个clientID。您可以转到此webpage并按照其中的说明操作。您的请求现在发生的是每次发出请求时出现400错误。引用API文档: 要识别API的应用程序,每个请求必须通过包含OAuth令牌显式或隐式地包含应用程序的客户端ID。如果您在请求中使用OAuth令牌,则API会为您计算出客户端ID。

  

没有客户端ID的请求因HTTP 400错误而失败。

     

要获取客户端ID,请在上面注册开发人员应用程序   您的Twitch帐户的连接页面。获得客户端ID后,   你可以通过以下方式发送:

     

请求标头(Client-ID:XXXXX)查询字符串参数   (https://api.twitch.tv/kraken/users/44322889?client_id=XXXXX

旧帖子,为了充分披露:

您应该上传HTML以确保您确实正确地包含了这些文件。

我尝试了这个代码,就像你的代码,在codepen中,一切正常

$(document).ready(function(){
  $.getJSON('https://jsonplaceholder.typicode.com/posts/1',function(result){
    console.log("success");
  });
});

我认为你可能遇到了jquery所在的CDN问题,但在此之前,假设你有一个引用错误并且没有定义jQuery。你可以看看我为你写的这支笔: Codepen example

如果您上传HTML,就像您在帖子中的评论中所做的那样,您会注意到:

 <div class="container">
      <div id="header" class="text-center">
  <h1>TwitchTV JSON API</h1>
  <h2>Free Code Camp</h2>
  <h3 id="fccStatus"></h3>
  </div>
  <div class="row">
    <h1>
    <div class="col-md-4">
      Logo:
      </div>
     <div class="col-md-4">
      Display Name:
      </div>
      <div class="col-md-4">
      Status:
      </div>
    </h1>
  </div>
  <div id="followerInfo">

  </div>
</div>

不是友好格式化,现在没问题,但也不包括对任何javascript或jquery文件的任何提及。 DOCTYPE,html,body,head标签在哪里? 您缺少连接脚本并启用jQuery的所有脚本标记。

<html>
<head></head>
 <body>
 <div class="container">
      <div id="header" class="text-center">
  <h1>TwitchTV JSON API</h1>
  <h2>Free Code Camp</h2>
  <h3 id="fccStatus"></h3>
  </div>
  <div class="row">
    <h1>
    <div class="col-md-4">
      Logo:
      </div>
     <div class="col-md-4">
      Display Name:
      </div>
      <div class="col-md-4">
      Status:
      </div>
    </h1>
  </div>
  <div id="followerInfo">

  </div>
</div>
<script src="/path/to/jquery.js"></script>
<script src="/path/to/your-script.js"></script>
</body>
</html>

另外,既然你正在进行FCC API挑战,你可能想参考这篇教程的帖子,就好像你被卡住了一样,否则就没有意义了。 FCC Twitch API