RPC调用外部服务器

时间:2012-08-13 21:52:24

标签: google-app-engine gwt

我是GWT的新朋友,我在abc.com上写了一个应用程序,我有另一个应用程序,即xyz.comxyz.com?id=1为我提供了json格式的数据,我正在考虑如何通过json调用找到如何在abc.com中获取RPC文件的方法,因为我已经看过使用RPC调用从其服务器获取数据的教程。任何帮助将不胜感激。

修改

我正在尝试在此this

中实施StockWatcher tutorial

我将代码稍微更改为此

private static final String JSON_URL = "http://localhost/stockPrices.php?q=";

 private void refreshWatchList() {
            if (stocks.size() == 0) {
                return;
            }

            String url = JSON_URL;

            // Append watch list stock symbols to query URL.
            Iterator iter = stocks.iterator();
            while (iter.hasNext()) {
                url += iter.next();
                if (iter.hasNext()) {
                    url += "+";
                }
            }

            url = URL.encode(url);

            MyJSONUtility.makeJSONRequest(url, new JSONHandler() {

                @Override
                public void handleJSON(JavaScriptObject obj) {
                    if (obj == null) {
                        displayError("Couldn't retrieve JSON");
                        return;
                    }
                    updateTable(asArrayOfStockData(obj));
                }
            });


        }

之前,当我通过RequestBuilder请求我的网址时,它给了我一个例外Couldn't retrieve JSON,但现在JSON已被提取,状态代码为200,正如我在{{1}中看到的那样但它没有在表上更新。请帮助我。

1 个答案:

答案 0 :(得分:2)

首先,您需要了解Same Origin Policy,它解释了浏览器如何实现安全模型,其中网页上运行的JavaScript代码可能无法与源自同一网站的任何资源进行交互。

虽然GWT的HTTP客户端和RPC调用只能从加载了应用程序的同一站点获取数据,但如果它以正确的格式返回json,则可以从另一台服务器获取数据。您必须与JSON服务进行交互,该服务可以使用JSON数据作为参数调用用户定义的回调函数。

其次,请参阅How to Fetch JSON DATA

相关问题