Приложение React Native (Expo) + Django: TypeError: Сбой сетевого запроса
У меня есть React Native (Expo go) frontend и Django based backend.
У меня есть бэкенд на основе Django с некоторыми конечными точками API, к которым я пытаюсь обратиться из фронтенда.
При использовании команды npx expo start --tunnel
вместо команды npx expo start
для запуска фронтенда, веб-запросы к бэкенду не выполняются.
Вот полный набор настроек:
В настройках django у меня установлены следующие параметры:
CORS_ALLOWED_ORIGINS = [
'exp://julyt-u-anonymous-8081.exp.direct',
'http://localhost:19006',
'http://192.168.153.13:8081',
'10.0..rest_of_the_ip',
]
CORS_ALLOW_CREDENTIALS = True
CORS_ORIGIN_WHITELIST = ('*')
ALLOWED_HOSTS = ['*']
Я запускаю сервер django с:
python manage.py runserver 10.0..rest_of_the_ip:8000
Я запускаю фронтенд с:
npx expo start --tunnel
При отправке веб-запроса к конечной точке api я получаю следующее на стороне фронтенда:
Например, ERROR API::loginUser->FAILED TO LOGIN USER: [TypeError: Network request failed]
Сторона бэкенда ничего не получает.
Эта же настройка работает, когда я использую один и тот же wifi для backend и frontend, например, когда я нахожусь в кафе:
python manage.py runserver local_IPv4:8000
npx expo start
Для справки, использование npx expo start не работает, когда я использую этот текущий wifi. Телефон (приложение expo go) не подключается к серверу, и поэтому это не вариант, и мне приходится использовать флаг --tunnel
.
Я размыл ip, который я использую обычно, хотя IP, начинающийся с 10.0..., вероятно, является локальным IPv4-адресом, и беспокоиться не о чем.
Я пытался изменить настройки CORS в бэкенде, чтобы разрешить используемый IP, но безрезультатно.