1

Google 퓨전 테이블을 가지고 놀고 있었는데 클라이언트 측에서 CSV를 어떻게로드 할 수 있는지 궁금합니다. 지금까지 내가 시도한 몇 가지 옵션 : 액션 스크립트 3.0에서클라이언트 응용 프로그램에서 Fusion Tables CSV를로드하려면 어떻게해야합니까?

:

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); 
} 

액션 스크립트 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()); 

:

$.get('https://www.google.com/fusiontables/exporttable?query=select%20*%20from%203685185%20', 
    function(data) { alert(data); }); 

모든 작동 ActionScript에서 독립 실행 형 플레이어이지만 온라인에서 보안 샌드 박스와 같은 냄새가 나는 것은 아닙니다.

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. 

내가 쿼리있어 표는 공공 및 내보낼

: 는 JS에서 나는이 얻을. 또한 Chrome에서 Simple REST Client를 사용하여 전화를 시도했으며 올바른 응답을 받았습니다. 내가 누락 될 수있는 것에 대한 힌트가 있습니까?

답변

2

나는 자바 스크립트 접근법에 대해서만 이야기 할 수 있습니다. 브라우저 간 도메인 액세스 제한으로 인해 JSONP를 사용하여 결과를 검색해야합니다. 다행스럽게도 Fusion Tables는 JSONP를 지원합니다. 이 answer에 몇 가지 예제 코드를 게시했습니다. 또 다른 접근법은 google.visualization 라이브러리를 사용하는 것이며이 샘플 코드는 answer입니다. 조지-profenza

2 점 @

UPDATE . 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]); 
      } 
    } 
} 
+0

[그것을 시도] (http://lifesine.eu/test/fusiontable.html) 만 사용하여 작동하지 않았다 당신의 첫 번째 대답. 나는 js에 많은 경험이 없다, 나는 그것을 잘못하고있다? –

+0

완벽하게 작동했습니다! 감사! _ (또한 액션 스크립트에서'& jsonCallback =?'을 제거하면 작동합니다.) _ –