我是GWT的初学者。我在GWT开发模式下调试我的程序。网址为http://127.0.0.1:8888/Replayer.html?gwt.codesvr=127.0.0.1:9997。
我想从现有服务器获取数据,该服务器以json格式提供数据。我的代码是:
String url = "http://i.abc.com?sid=" + mSessionId + "&action=info";
RequestBuilder builder = new RequestBuilder(RequestBuilder.GET, URL.encode(url));
try {
Request request = builder.sendRequest(null, new RequestCallback() {
public void onError(Request request, Throwable exception) {
// Couldn't connect to server (could be timeout, SOP
// violation, etc.)
Window.alert("Get fudao info error");
mPrepare = false;
}
@Override
public void onResponseReceived(Request request, Response response) {
GWT.log("statuscode:"+response.getStatusCode());
if (200 == response.getStatusCode()) {
// Process the response in response.getText()
Window.alert(response.getText());
mPrepare = true;
} else {
// Handle the error. Can get the status text from
// response.getStatusText()
Window.alert("Get fudao info wrong");
mPrepare = false;
}
}
});
} catch (RequestException e) {
// Couldn't connect to server
}
运行应用程序时,请求失败并且其状态为“已取消”。是因为我无法从localhost请求远程服务器地址以进行SOP限制吗?
如何在GWT开发模式下获取远程服务器的数据?
答案 0 :(得分:0)
通常无法从GWT客户端代码的其他服务器获取数据。但是您的本地服务器可以充当代理,例如如果您向本地服务器发送请求,它将向远程服务器发送请求,而不是从远程服务器获取响应并将其提供给GWT客户端代码。这基本上是最简单的解决方案。