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

Ajax 在同一个域上托管两个网站,ajax,tomcat,tomcat7,openshift,appfog,Ajax,Tomcat,Tomcat7,Openshift,Appfog,我有两个应用程序名为opentripplanner webapp和opentripplanner api webapp。我已经在本地tomcat服务器上成功地部署了它们。应用程序的url为http://localhost:8080/opentripplanner-webapp和http://localhost:8080/opentripplanner-api webapp。当我在appfog上部署应用程序时,它们会为这两个应用程序提供不同的域。问题是我的应用程序使用ajax请求和响应,这在跨域上

我有两个应用程序名为opentripplanner webapp和opentripplanner api webapp。我已经在本地tomcat服务器上成功地部署了它们。应用程序的url为
http://localhost:8080/opentripplanner-webapp
http://localhost:8080/opentripplanner-api webapp
。当我在appfog上部署应用程序时,它们会为这两个应用程序提供不同的域。问题是我的应用程序使用ajax请求和响应,这在跨域上不起作用。我找了两天的时间来寻找解决方案,但没有找到合适的解决方案。请引导我。
谢谢

这里有几个选项供您选择:

  • 使用。您必须编写api以使其支持此协议,但这不会太困难
  • 创建
    opentripplanner webapp
    opentripplanner api webapp
    ,以便它们支持。这意味着您的webapp在请求中发送一个
    Origin
    头,服务器用
    Access Control Allow Origin
    头响应,如果它们匹配,浏览器接受请求。然而,尽管大多数现代浏览器都是这样做的
  • 在opentripplanner Web应用程序中使用代理servlet,代理对API的请求。您可以在webapp中的
    /api
    等位置“装载”此servlet,它将在内部将所有请求转发给opentripplanner api webapp。因此,您可以将AJAX请求发送到
    http://webappserver/api
    而不是
    http://apiserver
    。对于浏览器,这看起来像一个普通的同源请求。这将适用于所有浏览器,但可能需要更多的设置