2014-10-30 57 views
0

我正在使用此Ajax調用來從Internet獲取CSV文件。目前,它的實施方式是調用yahooapisSQL,如查詢文件。使用Javascript執行的YQL功能

function getData(qry){ 
      $.ajax({ 
       url: 'http://query.yahooapis.com/v1/public/yql', 
       data: { 
        q: qry, 
        format: 'json', 
        _maxage: 120, 
        ts: getTS(dateNow) 
       }, 
       cache:true, 
       dataType: 'jsonp', 
       success:function(data){ 
        setFlowData(data);  
       } 
      }); 
     } 

qry類似於這樣的事情:

if(data.query.count > 0){ 
     var queryData = data.query.results.row; 
     if (queryData.col2 == rt.id) { 
      rt.lbmp = queryData.col3; 
      rt.ts = queryData.col0; 
     }  
    } 

我的問題是我怎麼實現:

select * from csv where url IN ('http://example.com/public/zone.csv') 

該文件,然後通過類似這樣的功能解析沒有使用YQL/SQL調用的相同功能?這可能與JavaScript實施?謝謝您的幫助。

+0

你想做什麼? yql調用進入服務器,服務器查看您的查詢和參數並構建返回的數據。如果這是形成這些數據的唯一方法,那麼這就是你堅持的方式。爲什麼它甚至是一個問題? – Spacedman 2014-10-30 15:44:59

+0

因爲我的任務是消除系統@Spacedman中對YQL的需求。我很想保留這一點,但不幸的是,我需要找到一種方法來消除我們的需要。 – 2014-10-30 15:46:29

+0

我不認爲任何人都可以提供幫助,除非你至少告訴我們你傳遞給你什麼'qry'。 – Spacedman 2014-10-30 15:47:17

回答

0

絕對可以在沒有任何YQL的情況下處理CSV數據。您可以使用$ .ajax來獲取csv數據,如果它來自您自己的域或CORS就緒,或通過CORS代理服務器。還有jquery-csv(https://code.google.com/p/jquery-csv/)或PapaParse(http://papaparse.com/)解析CSV數據。

+0

「......如果它來自你自己的域名......」 - 如果不是:( – 2014-11-10 12:44:28

+0

「域名」可以被認爲是「protocol://wwww.yourhost.com」的同義詞url部分,或起源來源 出於安全原因,除非第三方服務器明確地啓用「跨源訪問」,否則通常會被瀏覽器專門阻止對其他域(=跨源訪問)的調用,另外還有一種流行的ajax代理模式(通過中間私人或公共代理服務器調用ajax)。請搜索「cross origin ajax」或CORS以獲取更多信息。 – 2014-11-11 00:29:08