【发布时间】:2015-09-16 08:43:03
【问题描述】:
我正在尝试访问在我进行的 Ajax 调用中返回的数据。这是引用 steam API 并成功返回数据。我有控制台记录它来检查。每当我尝试访问我得到的数据和未定义的控制台消息时。
下面是我返回的 JSON 文件的 sn-p
{
"playerstats": {
"steamID": "Removed for SO",
"gameName": "ValveTestApp260",
"stats": [
{
"name": "total_kills",
"value": 7642
},
{
"name": "total_deaths",
"value": 7349
},
{
"name": "total_time_played",
"value": 427839
},
{
"name": "total_planted_bombs",
"value": 341
},
下面是我的ajax调用代码
$.ajax({
url: this.props.url,
dataType: 'json',
crossDomain: true,
success: function(data) {
console.log("success", typeof data);
console.log(data.playerstats.stats.total_kills);
console.log(data["playerstats"]["stats"]["total_kills"]);
}.bind(this),
error: function(xhr, status, err, data) {
console.error(this.props.url, status, err.toString());
}.bind(this)
});
我成功进入了success函数,但是控制台显示如下
success object Inline JSX script:21 undefined Inline JSX script:22 undefined
console.log 行上出现了 2 个未定义的错误,我曾尝试在该行访问数据,但我唯一能想到的是我访问错误。
尝试
console.log(data.playerstats.stats.total_kills);
console.log(data["playerstats"]["stats"]["total_kills"]);
【问题讨论】:
-
你有
corssDomain,应该是crossDomain。 -
你的 data.playerstats.stats 是一个数组而不是对象。您无法访问它的 total_skills .. 请检查
-
@AkshayKhandelwal 但控制台日志类型告诉我它是一个对象
success object -
欢迎使用 Javascript 我的朋友.. typeOf(Array) = "Object"
-
data.playerstats.stats.forEach(function (stat) { alert(stat.value); //stats 的属性是名称和值 });
标签: javascript jquery json ajax object