我是GWT的新朋友,我在abc.com
上写了一个应用程序,我有另一个应用程序,即xyz.com
,xyz.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}中看到的那样但它没有在表上更新。请帮助我。
答案 0 :(得分:2)
首先,您需要了解Same Origin Policy,它解释了浏览器如何实现安全模型,其中网页上运行的JavaScript代码可能无法与源自同一网站的任何资源进行交互。
虽然GWT的HTTP客户端和RPC调用只能从加载了应用程序的同一站点获取数据,但如果它以正确的格式返回json,则可以从另一台服务器获取数据。您必须与JSON服务进行交互,该服务可以使用JSON数据作为参数调用用户定义的回调函数。
其次,请参阅How to Fetch JSON DATA