0

我正在使用 GAE/GWT 创建一个 Web 应用程序。前端 GUI 是一个 Web 客户端,服务器是一个 RESTFUL 服务器,两者都在不同域的 GAE 中运行。

我正在使用带填充的 json 与服务器通信,但发现我将无法发送 PUT/POST/DELETE 请求。

我的应用程序将主要用于查询数据(查询:85% 的情况,修改数据:15%)。所有请求都将被验证。

我正在考虑以下选项。

1)查询使用JsonpRequestBuilder,修改在Web客户端服务器端创建一个代理,并通过该代理访问REST服务。使用 GWT RPC 与此代理通信。

2) 在我的 REST 服务(包括那些修改数据的服务)中将每个请求作为 GET 请求,并直接从 Web 客户端使用 jsonp。

我更喜欢选项 1) 但选项 2) 似乎要做的工作更少。

1) 应该是我的首选吗?

鉴于我的所有请求都将通过身份验证,2) 是否有任何问题。?

有没有其他简单的方法来解决这个问题?

问候,

沙迪亚

4

2 回答 2

1

最简单的解决方案是使用CORS,它允许您向两个不同的来源发送请求。但它并没有那么广泛传播(检查caniuse),所以如果你必须支持 IE8-9,它对你来说是不够的。

在您的情况下,我会尝试实施双重解决方案(例如 CORS + 服务器代理)。如果浏览器支持 CORS - 将请求直接发送到目标服务器,如果不支持 - 通过代理发送请求。

于 2013-04-04T13:20:33.387 回答
0

很抱歉问,让您的客户端在不同的域上运行有什么好处?据我了解,您的客户的服务器将什么都不做......

如果您不是 REST 后端的“所有者”,也许这个后端应该为第三方应用程序开发一个授权系统,例如oauth2

然后,您的应用程序可以通过安全连接与后​​端对话。您可以在后端使用scribe来执行此操作。

于 2013-04-04T17:30:36.007 回答