如何在GWT开发模式下获取远程服务器的数据?

时间:2012-02-02 08:59:57

标签: gwt

我是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开发模式下获取远程服务器的数据?

1 个答案:

答案 0 :(得分:0)

通常无法从GWT客户端代码的其他服务器获取数据。但是您的本地服务器可以充当代理,例如如果您向本地服务器发送请求,它将向远程服务器发送请求,而不是从远程服务器获取响应并将其提供给GWT客户端代码。这基本上是最简单的解决方案。