React-Native fetch, сетевой запрос не выполнен. не использовать localhost - программирование
Подтвердить что ты не робот

React-Native fetch, сетевой запрос не выполнен. не использовать localhost

У меня есть приложение, которое im использует fetch для аутентификации пользователя. он работал до нескольких дней назад, и я ничего не меняю. просто обновленный от реакции 0,27 до 0,28, а не выборка не работает.

Я искал почти 2 дня, и я прочитал почти все вопросы в stackoverflow. большинство пользователей пытаются извлечь что-то из localhost, и когда они меняют его на фактический IP-адрес, они заставляют его работать. но я не получал ничего от localhost, также использовался мой код.

вот мой код:

fetch('http://somesite.com/app/connect', {
      method: 'POST',
      headers: {
        'Accept': 'application/json',
        'Content-Type': 'application/json',
        'language':'en-US',
        'Authorization': 'Bearer ' + access_token,
      },
      body: JSON.stringify({
        uid: uid,
        refresh_token: refresh_token,
        token: access_token,
        device: device_id,
        device_name: device_name,
      })
    })
.then((response) => response.json())
.then((responseData) => {
    console.log(JSON.stringify(responseData.body))
})
.catch((err)=> {
  console.log('Some errors occured');
  console.log(err);
})
.done();
4b9b3361

Ответ 1

Вы должны проверить эту ссылку: https://github.com/facebook/react-native/issues/8118

Похоже, проблема возникла у React Native 0.28. Решение заключается в "Разрешить произвольные нагрузки" в файле info.plist, найденном в папке ios > build, созданной React.

Если вы откроете всю папку ios в xcode, затем откройте этот файл info.plist, вы можете создать новый ключ для разрешения произвольных нагрузок, и он должен исправить вашу проблему.

Разрешить произвольные нагрузки

Ответ 2

Установить info.plist у меня тоже не работает. Пытаюсь запустить на iOS.

Ответ 3

Эта проблема заключается в том, что код пытается получить конечную точку HTTP вместо HTTPS, что не рекомендуется. Если вы извлекаете данные с сервера localhost, простое решение - показать ваш сервер localhost через конечную точку Ngrok https.

Шаги:

  1. Загрузите ngrok и запустите ngrok http 8081 из терминала /cmd, где вы должны сменить 8081 на локальный сервисный порт.

  2. Ngrok предоставит вам конечную точку пересылки https, просто используйте ее для доступа к вашему локальному серверу.