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
  • Вопрос задан
  • 269 просмотров
Решения вопроса 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
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы