1

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

4

1 回答 1

0

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

  • 使用JSONP(带填充的 JSON)。您必须编写您的 api,以便它支持此协议,但这不应该太难。
  • 创建两者opentripplanner-webappopentripplanner-api-webapp因此它们支持Cross Origin Resource Sharing。这意味着您的 webappOrigin在请求中发送一个标头,服务器以一个Access-Control-Allow-Origin标头响应,如果它们匹配,则浏览器接受该请求。然而,并非所有浏览器都支持这一点,尽管大多数现代浏览器都支持。
  • 在您的 opentripplanner-webapp 中使用代理 servlet 代理对您的 API 的请求。您可以“挂载”这个 servlet,例如/api在 webapp 中,它会在内部将所有请求转发到 opentripplanner-api-webapp。因此,您会将 AJAX 请求发送到http://webappserver/api而不是http://apiserver. 对于浏览器来说,这看起来就像一个普通的同源请求。这适用于所有浏览器,但可能需要更多设置。
于 2013-04-21T08:58:17.503 回答