Не могу понять, почему API, который я пытаюсь использовать, не работает

#javascript

#javascript

Вопрос:

 let upc = barcode;

let appKey = (insert appKey)
let appId = (insert appId)

$(document).ready(function(){
        $.ajax({
            url: "https://trackapi.nutritionix.com/v2/search/item?x-app-id="   appId   "amp;x-app-key="   appKey   "amp;upc="   upc,
            dataType: "json",
            complete: function(data) {
              var foodData = data.responseJSON.foods[0];
  

Мы пытаемся использовать этот API для проекта, но каждый раз, когда мы пытаемся его запустить, JavaScript сообщает, что он «не может прочитать свойство ‘0’ из undefined». У нас не закончились вызовы, потому что мы получили совершенно новый идентификатор и ключ. Он по-прежнему не работает и выдает нам ту же ошибку.

Комментарии:

1. Вам придется использовать инструменты разработчика браузера, чтобы проверить, что на самом деле возвращается из HTTP-запроса.

2. Не могли бы вы сделать console.log(data.responseJSON) ? скорее всего, у него нет foods свойства.

3. Когда я перехожу по ссылке в браузере, он говорит, что обращение не найдено. Это происходит с каждой новой ссылкой, которую мы получаем. Мы проверили, не отключены ли серверы API, но это не так. Это означает, что мы, должно быть, что-то напутали в коде.

4. Это очень специфично для API, который вы вызываете. Возможно, вам следует ссылаться на их поддержку, а не на SO. Как сказал @DipenShah, вы data.responseJSON.foods undefined . Так что либо вы используете его неправильно, либо вам следует проверить их документацию, и если полученный результат не совпадает, обратитесь в их службу поддержки, чтобы понять, почему.

5. Мы нашли проблему. Это было связано с тем, что мы использовали 2 API. Один из них — UPC API, а другой — API базы данных продуктов питания. Проблема в том, что UPC API содержит намного больше элементов, чем API базы данных продуктов. И когда мы вводим что-то, чего нет в food API, оно возвращается как неопределенное.