2011-10-25 37 views
2

我有一個CSV文件託管在遠程服務器上。有沒有辦法讓jQuery使用該文件,以便它可以轉換爲jQuery數組?我仍然會面臨跨站腳本問題嗎?通過jQuery消費遠程CSV文件?

+0

試試這個:http://stackoverflow.com/a/12289296/761963 –

回答

4

你會運行到由Same Origin Policy施加的限制。簡而言之,禁止對其他域進行AJAX調用,並且始終(但非常非常罕見的情況下)會失敗,無論內容是什麼。

您必須要麼使用JSONP(主要是適用於由API傳回數據)或proxy the request through your own server/domain

消費CSV本身是相當瑣碎:

csv_arr = csvstring.split(/\n/); 
$.each(csv_arr, function(i,e){ 
    csv_arr[i] = e.split(','); 
}); 

編輯:注意,如@echoback提到的,我已經錯過了引用值的可能性。

幸運的是,there's an awesome plugin that turns CSV into JSON。就這樣。

+0

記住要考慮引用的字符串。 ''你好,世界',1234'是兩個要素,而不是三個。 – harbichidian

+0

@echoback謝謝,我錯過了。相應地更新了答案。 – vzwick

+0

csonv.js似乎不適合我(在Firefox上)。我要去嘗試D3:http://learnjsdata.com/read_data.html –

0

是的,你仍然必須解決跨域問題。您最好的方法是在另一端使用Web服務,並通過JSONP和回調消費。

0

我不知道在跨域問題 - 但使用jQuery的AJAX從同一個域取CSV文件,然後只使用在換行符和逗號分割的JavaScript(),使陣列。