Почему мой iPhone отказывается подключаться к http-серверу, когда я сказал ему, что NSAllowsArbitraryLoads верна? - PullRequest
0 голосов
/ 10 июля 2020

Я играю с React Native, используя набор инструментов Expo. Я использую fetch, чтобы получить крошечную страницу html из Node.js, запущенного на моем компьютере. Я использую протокол http, а не https, потому что у меня нет подписанного сертификата. Когда я запускаю это в браузере, он работает, но когда я запускаю его на моем iPhone (XR), он дает мне TypeError: сбой сетевого запроса.

Я знаю, что у меня должен быть установлен ключ NSAllowsArbitraryLoads в значение true в моем Info.plist, и вот он у меня. Я также пробовал вставить ключ с (локальным) IP-адресом моего компьютера в словарь NSExceptionDomains с параметром NSExceptionAllowsInsecureHTTPLoads, установленным в значение true, но безуспешно (аналогично с NSTemporaryExceptionAllowsInsecureHTTPLoads).

Сервер включает заголовки Access-Control -Allow-Origin и Access-Control-Allow-Headers (значение «*»), и я проверил диск из каталога моего приложения вниз, чтобы увидеть, возможно, есть еще файлы Info.plist, и я редактирую не тот, но похоже, что это не так. Я полностью отключил свой брандмауэр (у меня Windows 10).

При использовании https и самозаверяющего сертификата поведение идентично (ie, работает в браузере, сетевой запрос не удалось на iPhone). Но когда я загружаю сервер Node.js в Azure и запускаю его оттуда, используя https с подписанным сертификатом, который предоставляет Azure, ошибка исчезает, и приложение делает то же самое на моем iPhone, что и в браузере. .

Есть предложения, что искать?

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