Почему я получаю ошибку 500 при получении данных с помощью axios - PullRequest
0 голосов
/ 29 января 2020

Я делаю небольшой проект, чтобы изучить его и поместить его в свой раздел проекта. У меня возникает такая проблема:

GET https://cors-anywhere.herokuapp.com/http: // www.recipepuppy.com/api/?q=rice 500 ( Внутренняя ошибка сервера)

Uncaught (в обещании) Ошибка: не удалось выполнить запрос с кодом состояния 500 при createError (createError. js: 16) при настройке (урегулирования. js: 17) в XMLHttpRequest.handleLoad ( xhr. js: 61)

Я пытался использовать заголовки ax ios (я нашел это предложение на другом форуме, но оно не работает) Мой код для извлечения данных выглядит следующим образом

 export async function fetchData(text) {
    const proxy = `https://cors-anywhere.herokuapp.com/`;
    const base = `http://www.recipepuppy.com/api/`;
    const baseEnd = `q=${text}`;
    const data = await axios
      .get(`${proxy}${base}?${baseEnd}`)
      .then(data =>console.log(data));
    const recipes = data.data.results;
    return recipes.length > 0 ? recipes : false;
  }

здесь вызывается функция:

async function getRecipes(e){ 
  e.preventDefault(); 
  const text = e.target[1].value; 
  const loader = '<div class="loader"></div>'; 
  container.insertAdjacentHTML('beforebegin', loader); 
  const recipes = await fetchData(text); 
  document.querySelector('.loader').remove(); 
  displayRecipes(recipes); 
}

1 Ответ

0 голосов
/ 29 января 2020

Вам нужно отловить возможную ошибку из Promise (поскольку ax ios .get () возвращает объект типа Promise).

axios.get(`${proxy}${base}?${baseEnd}`)
  .then(data =>console.log(data))
  .catch(error => {
    console.log(error)
  })
...