Сучасна диджитал-освіта для дітей — безоплатне заняття в GoITeens ×
Mazda CX 30
×

Альтернативы Heroku для Java-приложения

Підписуйтеся на Telegram-канал «DOU #tech», щоб не пропустити нові технічні статті

Добрый день. Не уверен, что назвал тему правильно, но часть проблемы название таки отображает. :-)

Суть проблемы. Написал небольшое одностраничное Java приложение. Пользователь вводит в форму название города, по submit идёт Ajax-запрос на Openweather, json-ответ отправляется на сервер(Spring MVC), там парсится, форматируется и отдаётся на клиент, опять же с помощью Ajax. На локалхосте всё тестируется и работает нормально. Но после деплоя на Heroku всё ломается. Причина — blocked mixed content, Heroku (https) блокирует ajax запрос на OpenWeatherMap (http).

Погуглив, увидел только два варианта решения проблемы. Первый — сменить Heroku на что-нибудь другое, т. к. у него нет http-версии. Второй — сменить провайдер погоды, но из бесплатных OpenWeatherMap самый удобный, но HTTPS, увы, он поддерживает только в платных версиях подписки.

Может быть я просто плохо искал? Прошу прощения, если мой вопрос покажется кому-то глупым, а ответ на него — очевидным.

P. S. В некоторых браузерах есть возможность отключить блокирование, а в некоторых эта проблема вообще не возникает(со смартфона и планшета, например). Но вот хочется, чтобы вообще не возникала. =)

P. P. S. Пока проблему решил, вынеся запрос по submit из клиента на уровень сервера (по URLConnection, а дальше — всё как описано выше). Задеплоил обновленный вариант, вроде работает. Спасибо Vsevolod Ievgiienko за подсказку вполне очевидного решения.

👍ПодобаєтьсяСподобалось0
До обраногоВ обраному0
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Все же попробуйте открыть в браузере ваше приложение через http

Через Google Chrome по http всё по умолчанию без проблем открывалось, но через Мозиллу — нет, надо было сделать пару кликов мышкой в настройках безопасности. Впрочем, я нашёл ещё одну причину перенести запрос с клиента на сервер — в запросе персональный ключ доступа к API светится. Он, в принципе, бесплатный и выдаётся любому желающему после регистрации, но мало ли)

Добрый день. Перепишите приложение так, чтобы http запрос шел не с клиента через Ajax, а по сабмиту формы с сервера.

Да, над этим вариантом я тоже думал. Спасибо, может так и сделаю.

Сделал. Вроде работает. Спасибо за подсказку вполне очевидного решения)

Есть ещё openshift.com . Но там нужно деплоить через контейнер.

Підписатись на коментарі