为什么我的jQuery AJAX第二个json值周期性地未定义?

时间:2019-01-02 20:00:25

标签: jquery ajax xmlhttprequest

我正在制作一个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);
             } 
          }
        });

1 个答案:

答案 0 :(得分:0)

在使用结果之前,应先查看结果是否已定义。 API可能没有为您提供所需的数据。

更改:

if (data.results[0].definition != undefined){

if (data && data.results && data.results[0].definition) {