ReactJS: Fetch приводит к «NetworkError при попытке извлечь ресурс». - PullRequest
1 голос
/ 09 июня 2019

Я пытаюсь получить из внешнего API в ReactJS.

Это функция, которую я использую для получения:

fetch(
      `https://www.iban-test.de/api/check/${input}?authcode=${IBAN_TEST_API}`
    )
      .then(data => setIbanResponse(data))
      .catch(error => setIbanResponse(error));
  }

Когда я console.log(ibanResponse) (я использую Hooks), я получаю

Доступ к выборке в 'https://www.iban -test.de / api / check / XXXX? Authcode = XXXX ' from origin 'http://localhost:3000' заблокирован политикой CORS: Ответ на предпечатную проверкузапрос не проходит проверку контроля доступа: в запрашиваемом ресурсе отсутствует заголовок «Access-Control-Allow-Origin».Если непрозрачный ответ удовлетворяет вашим потребностям, установите режим запроса 'no-cors', чтобы получить ресурс с отключенным CORS.

TypeError: Не удалось получить

index.js: 30 Cross-Блокировка считывания источника (CORB) заблокировала перекрестный ответ https://www.iban -test.de / api / check / XXXX? Authcode = XXXX с приложением MIME-типа / json.См. https://www.chromestatus.com/feature/5629709824032768 для получения более подробной информации.

В инспекторе сетей я вижу ответ 200 от API, и если я делаю запрос из своего браузера, он работает простохорошо.

Как я могу исправить этот запрос на выборку?

Я уже пробовал это:

fetch(
      `https://www.iban-test.de/api/check/${input}?authcode=${IBAN_TEST_API}`,
      {
        headers: {
          "Access-Control-Allow-Origin": "*"
        }
      }
    )
      .then(data => setIbanResponse(data))
      .catch(error => setIbanResponse(error));
  }

И это:

    fetch(
      `https://www.iban-test.de/api/check/${input}?authcode=${IBAN_TEST_API}`
    )
      .then(response => response.json())
      .then(data => setIbanResponse(data))
      .catch(error => setIbanResponse(error));
  }

Но он возвращает ту же ошибку.

Редактировать: я редактирую вопрос всем, кто ищет эту же проблему.Я реализовал решение @Matin Sasan и @sideshowbarker сказал, и это сработало как шарм.Мне пришлось использовать прокси, чтобы сделать запрос.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...