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); });
アクションスクリプトでは、すべてがスタンドアロンプレーヤーで機能しますが、オンラインでは機能しません。これは、ある種のセキュリティサンドボックスの問題のような匂いがします。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でSimpleRESTClientを使用して呼び出しを試したところ、正しい応答が得られました。私が欠けているかもしれないものについてのヒントはありますか?