GWT:如何使用JSON发送POST跨域请求

正如其Javadocs所建议的那样, JsonpRequestBuilder只能发送GET请求。 我需要使用相同的方法发送POST请求(对于使用JSON的跨域请求)。 有人知道任何有效的解决方案吗? 我在网上找不到任何起点。

提前致谢

你不能使用JSONP进行POST – 它只是插入一个标签,浏览器会触发一个GET请求。

也许你正在寻找的是CORS ,但这只有FF 3.5,IE 8和Safari 4及更新版本支持。 服务器也必须支持它。

否则,您必须从服务器代理到其他域。

GWT的Google API库解决了这个问题(发送跨域GWT-RPC调用),使用Shindig项目的gadgets.rpcfunction将跨框架消息发送到指向服务器上的页面的页面中的iframe ‘试图与之沟通。 iframe是发出请求的iframe ,当它收到响应时,它会发送另一个跨帧消息。

这包含在GadgetsRequestBuilder

扩展此function以生成常规XHR请求(使用POST方法)而不是GWT-RPC请求应该相当简单。

我也有这个问题,我不得不实施一些古怪的计划才能让它发挥作用。 幸运的是,我控制着服务器和客户端。

POST调用定义了一个名为’src’的url参数,该参数包含一些随机字符串。 当我POST到服务器时,数据会进入服务器,但我无法得到响应。

在幕后,服务器使用弱缓存中的’src’密钥缓存POST响应。

然后我在POST完成后使用相同的’src’键立即执行JSONP get调用,并获取结果。

它不漂亮,但它的工作原理。