我刚刚在玩 Google Fusion Tables,我想知道如何从客户端加载 csv。到目前为止,我已经尝试了几种选择:
来自 ActionScript 3.0:
var r:URLRequest = new URLRequest("https://www.google.com/fusiontables/exporttable?query=select%20*%20from%203685185%20");
r.method = URLRequestMethod.GET;
var l:URLLoader = new URLLoader(r);
l.addEventListener(Event.COMPLETE,loaded);
l.addEventListener(HTTPStatusEvent.HTTP_STATUS,onHTTPStatus);
function onHTTPStatus(event:HTTPStatusEvent):void{
trace(event.status);
}
function loaded(event:Event):void{
trace(this.loaderInfo.url,event.target.data);
}
来自 ActionScript 2.0:
var vars:LoadVars = new LoadVars();
vars.onLoad = function(loaded):Void{
if(loaded) trace(unescape(this));
else trace("error loading data");
}
vars.onHTTPStatus = function(status:Number):Void{
trace(status);
}
vars.load("http://www.google.com/fusiontables/exporttable?query=select%20*%20from%203685185%20&r="+new Date().getMilliseconds());
来自javascript:
$.get('https://www.google.com/fusiontables/exporttable?query=select%20*%20from%203685185%20',
function(data) { alert(data); });
在 actionscript 中,所有内容都在独立播放器中工作,但在网上却不行,这听起来像是某种安全沙箱问题。 在 JS我明白了:
XMLHttpRequest cannot load https://www.google.com/fusiontables/exporttable?query=select%20*%20from%203685185%20. Origin http://lifesine.eu is not allowed by Access-Control-Allow-Origin.
我正在查询的表是公开的并且可以导出。我还在 Chrome 上使用 Simple REST Client 尝试了调用并得到了正确的响应。关于我可能会遗漏什么的任何提示?
最佳答案
我只能谈谈 javascript 方法。由于浏览器跨域访问限制,需要使用JSONP来获取结果。幸运的是 Fusion Tables 支持 JSONP。我在此 answer 中发布了一些示例代码.另一种方法是使用 google.visualization 库,此 answer 中有一些示例代码.
更新 @george-profenza
2 分。 FT JSONP api 的 URL 不同。对于 jsonp,您必须添加一个回调参数。试试这个:
var queryurl = 'https://fusiontables.googleusercontent.com/fusiontables/api/query?sql=select%20*%20from%203685185%20&jsonCallback=?';
还有一个示例成功函数:
function dataHandler(data, textStatus, jqXHR) {
alert(textStatus);
var cols = data.table.cols;
var rows = data.table.rows;
for (var i = 0; i < cols.length; i++) {
alert(cols[i]);
}
for (var i = 0; i < rows.length; i++) {
for(j=0; j < rows[i].length; j++) {
alert(rows[i][j]);
}
}
}
关于javascript - 如何从客户端应用程序加载 Fusion Tables csv?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10341740/