繁体   English   中英

如何通过GWT发送跨站点PUT请求?

[英]How can I send cross site PUT requests through GWT?

我正在使用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)如果我的所有请求都将通过身份验证,是否有任何问题。

还有其他简单的方法可以解决此问题吗?

问候,

萨提亚

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

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

不好意思问一下,但是让您的客户端在其他域上运行有什么好处? 据我了解,您客户的服务器将无能为力...

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM