leonidshishkin
@leonidshishkin
Тянусь к знаниям)

Не могу получить данные с api c помощью fetch?

Есть React приложение сделанное с помощью create-react-app. В componentDidMount с помощью fetch делаю запрос к стороннему api, но fetch не возвращает json.

https://github.com/lshishkin/comic-vine/blob/maste...

async componentDidMount(){
  const heroes=await (await fetch(`https://comicvine.gamespot.com/api/characters/?api_key=6a1a9692ade19104b7ee7188055e048bdd6474a3`,{
    mode:"no-cors"
  })).json()
  console.log(heroes)
}

5c48bd32adcaf139873133.png
  • Вопрос задан
  • 289 просмотров
Решения вопроса 1
john36allTa
@john36allTa
alien glow of a dirty mind
Вам приходит response opaque (т.е. по сути reject).
А данные у Вас не получится обработать .json() потому, что они xml.
Цитата с хабра

Что касается «opaque» — то он приходит в случаях, когда выполняется CORS запрос, но удаленный ресурс не возвращает CORS заголовки. Данный тип запроса не предоставляет доступ данным или заголовку статуса, поэтому мы не имеем возможности судить о результате выполнения запроса. В рамках текущей имплементации fetch() не представляется возможности выполнять CORS запросы из скоупа window, и вот здесь написано почему. Эта функциональность должна быть добавлена, как только Cache API станет доступным из объекта window.

Источник
Как вариант, если очень нужно получать эти данные с клиента, можно использовать ServiceWorkers.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
tsepen
@tsepen
Frontend developer
По данному запросу Fetch возвращает XML, нужно преобразовать xml to json
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы