Смешанный контент: страница в «домене» была загружена через HTTPS, но запросила небезопасную конечную точку HTTP в Angular.

Я развернул свое приложение angular, используя домен с SSL на порту 4200, который взаимодействует с API на том же сервере и порту 3000. Теперь проблема в том, что когда я помещаю BASE_URL как IP с HTTP, он работает нормально, но когда на HTTP он дает смешанный контент HTTPS в HTTP-ошибку. Я также пробовал метод proxy-config, но он не работал. Есть ли способ связаться с тем же сервером через локальный IP-адрес (127.0.0.1) вместо IP-адреса сервера? CORS уже включен на стороне API (Node.js)

Смешанное содержимое: страница в домене была загружена через HTTPS, но запросила небезопасную конечную точку HTTP в Angular


person Usman Hafeez    schedule 31.01.2019    source источник


Ответы (1)


Насколько я знаю, я думаю, что загрузка http API с URL-адреса https всегда будет заблокирована.

Если вы не возражаете, реорганизуйте свой код, чтобы разрешить настраиваемую конечную точку API, а не всегда использовать http://localhost:3000. У вас будет несколько вариантов превратить ваш http API в HTTPS.

  1. Вы можете попробовать ngrok. Он позволяет преобразовать ваш http-сервис в https без необходимости настраивать веб-сервер, сертификаты и т. д.

    Бесплатная версия не будет иметь стабильного доменного имени. Каждый раз, когда вы начинаете новый сеанс ngrok, он будет другим. Просто оставьте сеанс включенным настолько долго, насколько это возможно, чтобы вам не приходилось слишком часто беспокоиться о смене имен. ИМХО, этого должно хватить для развития.

  2. Вы также можете настроить самозаверяющий сертификат для своего API. Если ваш API-сервер не поддерживает режим HTTPS, вам придется установить веб-сервер, который может обрабатывать HTTPS-запросы и проксировать их на ваш API.

    Установку можно сделать очень просто с помощью докера. Сертификат немного сложнее, но в сети есть руководства.

  3. Или вы можете запустить свой сервер Angular в режиме HTTP. Это должно исправить предупреждение, но более рискованно, поскольку среда разработки сильно отличается от рабочей среды, что может преподнести вам сюрпризы при развертывании. Так что менее рекомендуется.

person Douglas Liu    schedule 02.02.2019