jQuery获取CSV文件时出错

这是我的相关jQuery代码:

$.get('sampleData.csv', function(data) { var lines = data.split('\r\n'); 

sampleData.csv文件的前几行如下所示:

2009,0,2,29.0000
2009,0,6,655.6200

我得到2个错误。 在csv文件的第一行,我收到错误

语法错误

在第二行代码我得到错误

data.split不是一个函数

我究竟做错了什么?

ETA根据firebug控制台,responseText如下:

2009,0,2,29.0000 \ r \ n2009,… \ r \ n2011,10,30,494.3500 \ r \ n

ETA我在尝试将数据拆分成行之前添加了数据警报,我得到以下结果:

[对象XMLDocument]

我相信你误解了jQuery.get()的用法。

从它的doc页面 , "...Load data from the server using a HTTP GET request...."

对文件执行$ .get()不会将该文件的数据转换为可以使用的结构。 你必须通过服务器请求这个,然后提供.csv数据…它应该类似于以下内容

 $.get('http://url.to.server.page',function(data){ var dataStr = new String(data); var lines = dataStr.split('\n'); }); 

编辑::既然你说数据被正确“加载”,试试这个小提琴 。 它工作得很好。


EDIT2 ::

您的上一次编辑给了一些有趣的见解 当它拉动.csv文件时,它将其转换为XML与文本的类型。 请尝试以下方法:

 $.get('http://url.to.server.page',function(data){ var dataStr = new String(data); var lines = dataStr.split('\n'); },dataType='text'); 

这应该将返回的’数据’放入正确的字符串格式。

jQuery代码:

 $.get('data.csv', function(data) { var lines = data.split('\r\n'); }); 

工作到jquery版本1.5。
从版本1.5开始,get()方法中的回调函数传递“jqXHR”对象,而不是“XMLHttpRequest”对象。
代码可以更改为:

 $.get('data.csv', function(data) { var lines = data.split('\r\n'); }, "text"); 

然后它会工作。

http://api.jquery.com/jQuery.get/

你快到了。 缺少最后的括号,需要不同的分割字符。

 $.get('sampleData.csv', function(data) { var lines = data.split(','); }); 

编辑

啊你把你的CSV改成了两行,我以为它只是用逗号分隔的一行而不是由新行分隔的数据,也用逗号分隔。 下面我重新测试并为我工作正常。

         

我只是在我的桌面上使用你粘贴在同一个地方的csv的那个html文件。