javascript - jQuery AJAX 请求返回与预期不同的 JSON

标签 javascript jquery json ajax

我正在尝试通过 AJAX (jQuery) 从 NBA.com 请求 json 文件

我首先尝试获取 json 文件,但出现 CORS 错误,因此我尝试使用 jsonp

这会返回一个对象,但该对象看起来充满了函数和方法,而不是我请求的数据。

我在 codepen 上做了这个,所以你可以检查一下,可以使用开发者控制台检查输出,因为 document.write 只返回 [object Object]

这里是 codepen 的链接:http://codepen.io/kyriediculous/pen/KNKZZL

$(document).ready(function() {

function getPlayerGameLogs() {

  $.ajax ({
url: "http://stats.nba.com/stats/commonplayerinfo?LeagueID=00&PlayerID=202355&SeasonType=Regular+Season&format=jsonp",
dataType:"jsonp",
success: function(response) {
  console.log(response);
}
  })

};
  getPlayerGameLogs();
});

有人可以解释一下吗?是否无法从 nba.com 请求 JSON?具体来说是每个玩家的游戏日志。

最佳答案

你的例子效果很好。

$(document).ready(function() {
  
function getPlayerGameLogs() {
  
  $.ajax ({
    url: "http://stats.nba.com/stats/commonplayerinfo?LeagueID=00&PlayerID=202355&SeasonType=Regular+Season&format=jsonp",
    dataType:"jsonp",
    success: function(response) {
      console.log(response.resultSets);
      populateTable(response.resultSets, 'CommonPlayerInfo');
      populateTable(response.resultSets, 'PlayerHeadlineStats');
    }
  })
  
};
  getPlayerGameLogs();
});

function populateTable(resultSets, setName) {
  var data = resultSets.filter(function(set){
    return set.name === setName;
  })[0];
  var headers = data.headers;
  var rowSet = data.rowSet;
  var table = $('#' + setName);
  var tr = table.append($('<tr>'));
  $(headers).each(function(){
    tr.append(tr.append($('<th>').text(this.toString())));
  });
  $(rowSet).each(function(){
    var tr = $('<tr>');
    this.forEach(function(item){
      tr.append($('<td>').text(item.toString()));
    });
    table.append(tr);
  });
}
body {
  font-family: sans-serif;
}

table {
  border: 1px solid gray;
  font-size: 11px;
  border-collapse: collapse;
}

td, th {
  border: 1px solid gray;
  padding: 2px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<html>
  <head></head>
  <body>
    <h3>Headline Stats</h3>
    <table id="PlayerHeadlineStats"></table>
    <br />
    <h3>Player Info</h3>
    <table id="CommonPlayerInfo"></table>
  </body>
</html>

关于javascript - jQuery AJAX 请求返回与预期不同的 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40425120/

相关文章:

python - 将 YAML 文件转换为 Python JSON 对象

javascript - 我的 Javascript 项目正在访问网络摄像头,但没有显示任何内容

javascript - 过滤 Javascript/Lodash 中的嵌套属性

javascript - 使用 React Js 内容不显示在网络浏览器上

javascript - Jquery on() 方法传递参数以进行反跳

javascript - 在 Javascript 的 for 循环中运行不同的 api

javascript - Django 模板 - 会计格式的 Bootstrap 表编号

javascript - 替换除 alt 或 href 属性外的所有匹配文本

jquery:按钮鼠标按下状态改变

c# - JSON如何在反序列化过程中忽略丢失的对象