2
哦你好,各位SO成员,GET请求使用GWT检索XML数据?
我有使用是这样一个简单的GET请求返回XML数据的Web服务:
http://my-service:8082/qc/getData?paramX=0169¶mY=2
服务页面返回原始XML根据参数的值。
我想从使用RequestBuilder,Request等的GWT中的GET请求中检索这个数据。 但是,响应给了我空的文本,一个ZERO状态码(这不代表什么,也不是应该发生)等等。
下面是不起作用的简化代码。
public class SimpleXML implements EntryPoint {
public void onModuleLoad() {
this.doGet("http://my-service:8082/qc/getData", "0169", "2");
}
public void doGet(String serviceURL, String paramX, String paramY) {
final String getUrl = serviceURL + "?paramX=" + paramX + "&idTarification=" + paramY;
RequestBuilder builder = new RequestBuilder(RequestBuilder.GET, getUrl);
try {
Request response = builder.sendRequest(null, new RequestCallback() {
@Override
public void onResponseReceived(Request request, Response response) {
response.getStatusCode(); // Gives me 0 (zero) :(
}
@Override
public void onError(Request request, Throwable exception) {
// ... doesn't matter for this example
}
});
} catch (RequestException e) {
// ... doesn't matter for this example
}
}
}
我不明白为什么这是行不通的,因为这是非常简单的,我见过的教程,他们都告诉我的处事这样..
在此先感谢
那么,如果收到的数据是XML格式,我还可以使用JSON P来制作这个跨站点请求吗? 是否有其他解决方法(使用AJAX以外的其他方法?) – dominicbri7 2011-06-16 18:33:18
另外,我看不到这是一个AJAX调用,是不是一个简单的HttpRequest(GET)? – dominicbri7 2011-06-16 18:50:20
@dominic:从纯粹的HTTP角度来看,这只是另一个GET请求。但从浏览器的角度来看,这是一个AJAX(XHR)请求。 /您可以使用JSONP传输XML - 只需将XML放入JSON字符串中(确保使用正确的转义!)。 – 2011-06-16 19:25:30