我正在尝试通过 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/