Размещение двух сайтов в одном домене
У меня есть два приложения, названные opentripplanner-webapp и opentripplanner-api-webapp. Я успешно развернул их на локальном сервере Tomcat. Приложения имеют URL как http://localhost:8080/opentripplanner-webapp
а также http://localhost:8080/opentripplanner-api-webapp
, Когда я развернул приложения в appfog, они дали мне разные домены для обоих приложений. Проблема в том, что мои приложения используют ajax-запросы и ответы, которые не работают на кросс-доменах. Я ищу два дня, чтобы найти какое-либо решение, но не нашло подходящего решения. Пожалуйста, ведите меня.
Thankss
1 ответ
Вот несколько вариантов для вас:
- Используйте JSONP (JSON с отступом). Вы должны написать свой API, чтобы он поддерживал этот протокол, но он не должен быть слишком сложным.
- Создать оба
opentripplanner-webapp
а такжеopentripplanner-api-webapp
поэтому они поддерживают перекрестное совместное использование ресурсов. Это означает, что ваше веб-приложение отправляетOrigin
заголовок в запросе, и сервер отвечаетAccess-Control-Allow-Origin
заголовок, и, если они совпадают, браузер принимает запрос. Однако это поддерживается не всеми браузерами, хотя большинство современных браузеров поддерживают. - Используйте прокси сервлет в вашем opentripplanner-webapp, который прокси запрашивает ваш API. Вы можете "смонтировать" этот сервлет, например, на
/api
в веб-приложении, и он перенаправит все запросы в opentripplanner-api-webapp для внутреннего использования. Таким образом, вы будете отправлять ваши запросы AJAXhttp://webappserver/api
вместоhttp://apiserver
, Для браузера это будет выглядеть как обычный запрос того же источника. Это будет работать во всех браузерах, но может потребовать дополнительной настройки.