我正在制作一个Chrome扩展程序,并从wordsAPI中获取了一些报价信息。当我强制刷新选项卡时,有时会显示单词,但未显示定义,并且会出现控制台错误:'Uncaught TypeError:无法读取未定义的属性'0'。如您所见,我尝试添加一个超时,但这并没有真正的帮助。想知道如何解决这个问题。谢谢。
$.ajax({
type: 'GET',
url: 'https://wordsapiv1.p.rapidapi.com/words/?random=true',
beforeSend: function(xhr) {
xhr.setRequestHeader("X-RapidAPI-Key", "longAssGUID")
}, success: function(data){
$('#word').html("Word: " + data.word);
if (data.results[0].definition != undefined){
setTimeout(function() {
$('#def').html("Definition: " +
data.results[0].definition);
}, 2000);
}
}
});
答案 0 :(得分:0)
在使用结果之前,应先查看结果是否已定义。 API可能没有为您提供所需的数据。
更改:
if (data.results[0].definition != undefined){
到
if (data && data.results && data.results[0].definition) {