Fetch API с локального сервера не работает - PullRequest
0 голосов
/ 26 февраля 2020

Я разрабатываю проект с полным стеком, в котором я создал REST API бэкэнд-сервера с использованием Javalin. Затем, когда я пытаюсь извлечь данные из API, используя ReactJS, данные не выбираются. Ниже приведен фрагмент используемого кода:

 fetch('https://localhost:8000/api/')
      .then(r => r.json())
      .then(d => this.setState({data: d}));

Я проверил свой адрес API и также использовал Postman для проверки работоспособности API. Я также использовал тот же код для извлечения из других онлайн-API, которые работают. Так что я не совсем уверен, в чем проблема. Может fetch() не поддерживать API localhost?

Редактировать: ошибка при извлечении, и указана следующая ошибка:

Error: NetworkError when attempting to fetch resource.

Ответы [ 2 ]

0 голосов
/ 26 февраля 2020

вам нужно включить / добавить CORS в вашем бэкэнде javalin, вам нужно установить заголовок config.enableCorsForAllOrigins (), проверить документы здесь

0 голосов
/ 26 февраля 2020

если вы используете localhost, вам нужно использовать поддомен для конечной точки или вы можете использовать что-то подобное в пакете . json

"proxy": "http://localhost:8000" to package.json.

Если ваша конечная точка это что-то вроде http://localhost: 8000 / api / newaction , тогда это будет

fetch('/api/newaction')

Есть замечательная документация по разработке: ProxyingApiRequest и FetchData

...