Почему мое второе значение json в jQuery AJAX периодически не определено? - PullRequest
0 голосов
/ 02 января 2019

Я делаю расширение для 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 голосов
/ 02 января 2019

Вы должны увидеть, определены ли ваши результаты, прежде чем их использовать. Вполне возможно, что API не даст вам ожидаемых данных.

изменение:

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

до

if (data && data.results && data.results[0].definition) {
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...