MEAN Stack - Angular может общаться только через доменное имя - PullRequest
0 голосов
/ 03 октября 2018

Я установил средний стек в Digital Ocean Droplet на основе UBUNTU 18. Я использую Angular6 на порту 80 nginx, на узле jj на порту 3333, который я использую на той же машине.Я также включил CORS на nodejs.Угловое приложение собирается как продукт и копируется на сервер.Я включил, как описано в цифровом океане, частный ip, и я могу успешно свернуть api (nodejs), используя localhost, внутренний IP и 127.0.0.1

Теперь проблема: когда я вызываю API из angular6все, кроме доменного имени, дает мне ошибку -> Соединение отказано, неизвестная ошибка!Локально на моем ПК для разработки все работает как надо!Я подумал, что это может быть проблемой cors, но я могу получить доступ через IP к удаленному API с моей машины разработки без каких-либо проблем.Что мне не хватает?Я нахожу очень странным иметь возможность доступа к нему через доменное имя, а не через внутренний IP-адрес ... Обратите внимание, что на компьютере разработчика angular работает как ng serve ... единственное отличие состоит в том, что приложение создается как prodперед загрузкой на удаленный сервер.

1 Ответ

0 голосов
/ 04 октября 2018

Angular не может получить доступ к частному IP, потому что угловой код запускается вашим браузером, а не сервером.Поэтому, если вы не запускаете браузер прямо на сервере через vnc или что-то еще, ваша локальная машина не может получить доступ к частной сети (и, следовательно, к частному ip).

Digital ocean, вероятно, рекомендует вам настроить частный ip, чтобы вы моглиможет поместить вашу базу данных в частную сеть, чтобы она была отключена.

В любом случае, используйте полное доменное имя или публичный ip в своем угловом коде.

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