Хорошо, давайте сначала проясним проблему, с которой вы столкнулись, чтобы мое решение было более понятным.
Ваша проблема в том, что вы размещаете серверную часть локально на своем компьютере, и хотя вы можете получить к ней доступ безпроблема на вашем компьютере, когда вы пытаетесь подключиться к нему с другого устройства, вы не можете получить к нему доступ.
Эта проблема возникает из-за того, что ваш веб-сайт размещен локально на вашем компьютере и недоступенво внешний мир, поэтому ваш телефон, который предположительно находится в мобильной сети, не может получить доступ к вашему бэкэнду, поскольку ваш бэкэнд находится в вашей собственной частной сети, а ваш телефон не может получить доступ к этой частной сети из своей собственной сети. Это связано с тем, что обычноваш маршрутизатор / isp блокирует входящие запросы на порт 80, поэтому, даже если вы знаете общедоступный IP-адрес вашего компьютера, вы все равно будете заблокированы.
Теперь, когда мы обсудили проблему, давайте рассмотрим, что повлечет за собой решение.Решение может заключаться в том, что либо ваш телефон, и ваш компьютер находятся в одной сети, или вы выставляете свой компьютер в общедоступный Интернет.
Давайте попробуем это сделать несколькими способами.
- Первый и, возможно, самый простой способ добиться этого - подключить компьютер и телефон к одной сети.Этого можно добиться, подключив телефон к тому же маршрутизатору, который предоставляет вашему компьютеру доступ в Интернет.Как только вы подключитесь к той же сети, все, что вам нужно сделать, это вместо того, чтобы использовать этот URL
http://my.backend.test/api/some-route
, заменить my.backend.test на локальный IP-адрес вашего компьютера, так что если локальный IP-адрес вашего компьютера равен 192.168.0.2, тогда онстановится этим http://192.168.0.1/api/some-route
, и теперь вы сможете получить доступ к своему бэкэнду со своего телефона.
Примечание. Возможно, вы задаетесь вопросом, как определить локальный IP-адрес моего компьютера?В окнах это можно найти, зайдя в настройки сети> щелкните правой кнопкой мыши ваше сетевое соединение> щелкните свойства в контекстном меню, а затем найдите поле с адресом ipv4, то есть вашим локальным ip.На Mac вы можете найти его, перейдя в «Системные настройки»> «Сеть»> щелкнув по соединению с зеленой точкой рядом с ним> Затем под меткой состояния вы увидите текущий локальный IP-адрес, к которому вы подключены.
Решение № 1 отлично подходит, если вы не возражаете против трудностей с подключением телефона к той же сети, что и ваш компьютер, но, допустим, это неприятно или нецелесообразно по разным причинам, таким как отсутствие Wi-Fi и т. Д. Или просто таквы хотите, чтобы ваш телефон имел доступ к компьютеру из в любом месте и независимо от того, в какой сети он находится В этом случае решение 2 для вас.
Мы разрешим доступ к вашим компьютерам с локального хоста во весь Интернет с помощью программного обеспечения обратного туннелирования, в нашем случае одним из самых популярных вариантов является Ngrok, доступный
здесь .Ngrok создает туннель для вашего локального хоста и назначает ему общедоступный домен, такой как yourapp.ngrok.io, который вы можете использовать вместо my.backend.test для доступа к вашему приложению из любого места.Поэтому, включив Ngrok, вы просто замените
http://my.backend.test/api/some-route
на
http://yourNgrokAppDomainName.ngrok.io/api/some-route
, и вы сможете получить доступ к своему бэкэнду со своего телефона из любой точки мира, независимо от того, в какой сети вы находитесь.
В итоге этиЕсть два способа получить доступ к своему бэкэнду на вашем компьютере с телефона.Надеюсь, это поможет.