我从未使用过Restlet
,但它似乎在 GWT 中中继RequestBuilder
。因此,由于RequestBuilder
支持 CORS,gwt-restlet 应该这样做。
您可以毫无问题地将任何 GWT ajax 技术(RPC、RF 或 RequestBuilder)与 CORS 一起使用。认为 GWT 与任何其他 html/javascript 应用程序具有相同的限制,如果浏览器与 CORS 兼容(IE9 不兼容)并且服务器配置正确,则 CORS 将起作用。
话虽如此,我鼓励您尝试使用gwtquery,它为您提供了一种处理 ajax 的简单方法。通常,我使用gwtquery ajax来消费 3party 服务,因为它的语法和简单性。
gQuery 语法的目标是您可以轻松获取几乎 jQuery 示例并将它们移植到其中。
这是一个简单的例子:
ajax(Ajax.createSettings()
.setUrl("miservice.php")
.setDataType("json") // txt, json, jsonp, xml
.setType("get") // post, get
.setData($$("param1: 1, param2: 2")) // parameters in json, $$() creates json from string
.setSuccess(new Function(){ // callback to be run if the request succeeds
public void f() {
// The response when dataType=json is a javascript object (Properties)
Properties json = getDataProperties();
}
})
);
对于 JSON(或 XML),我使用gQuery 数据绑定将响应映射到 java 对象。
例如:
interface Site extends JsonBuilder {
long getId();
String getUrl();
Site setId(long id);
Site setUrl(String url);
}
...
Site site = GWT.create(Site.class);
site.load(getDataProperties();
Window.alert(site.getUrl();
...