我正在尝试处理JavaScript中的未定义错误 控制台正在转储此错误
未捕获的TypeError:无法读取属性'数据'未定义的
我的代码:
try {
FB.api(
'/me/',
'GET',
{"fields":"posts{likes.limit(10){id,name}}"},
function(response1) {
console.log(response1);
response1.posts.data[1].likes.data[0].id
if (typeof(response1.posts.data[1].likes.data[0].id) == 'undefined') {
alert("error1");
}
});
}
catch(err) {
alert("erro2");
}
出错了什么?
答案 0 :(得分:1)
您试图从对象链中获取一些数据,其中对象之前的对象未定义,因此明确您尝试调用undefined.data
。这就是为什么你的if条件没有满足,你只是得到了正常的控制台错误,而不是你的alert
(这里需要,因为我理解你的代码)。
相反,你可以这样做:
if (typeof(response1.posts) && typeof(response1.posts.data[1].likes.data[0].id) == 'undefined')
{...}
答案 1 :(得分:0)
可能是响应不是Object,而是字符串。尝试将其转换为JavaScript对象:
console.log(response1);
response1 = JSON.parse(response1);
response1.posts.data[1].likes.data[0].id