在同一个域上托管两个网站

时间:2013-04-21 08:50:48

标签: ajax tomcat tomcat7 openshift appfog

我有两个名为opentripplanner-webapp和opentripplanner-api-webapp的应用程序。我已成功将它们部署在本地tomcat服务器上。应用的网址为http://localhost:8080/opentripplanner-webapphttp://localhost:8080/opentripplanner-api-webapp。当我在appfog上部署应用程序时,它们为我们提供了两个应用程序的不同域名。问题是我的应用程序使用ajax请求和响应,这些不适用于跨域。我正在寻找两天找到任何解决方案,但没有找到任何合适的解决方案。请指导我。 Thankss

1 个答案:

答案 0 :(得分:0)

这里有几个选项:

  • 使用JSONP (JSON with Padding)。你必须写你的api所以它支持这个协议,但它不应该太难。
  • 同时创建opentripplanner-webappopentripplanner-api-webapp,以便他们支持Cross Origin Resource Sharing。这意味着您的webapp在请求中发送Origin标头,服务器以Access-Control-Allow-Origin标头响应,如果匹配,则浏览器接受请求。然而,这是not supported by all browsers,尽管大多数现代浏览器都这样做。
  • 在opentripplanner-webapp中使用代理servlet代理对API的请求。您可以将此servlet“挂载”在例如在webapp中/api,它会在内部将所有请求转发给opentripplanner-api-webapp。因此,您要将AJAX请求发送到http://webappserver/api而不是http://apiserver。对于浏览器,这看起来像普通的相同原始请求。这适用于所有浏览器,但可能需要更多设置。