2014-10-17 71 views
0

我想要做一些相当简单的事情,但我错过了一些东西。我对Javascript很陌生。我试图读取CSV文件到数组中(在我的代码中,我只是试图将数据输出到一个警告框)。我不断收到错误“访问被拒绝”。使用javascript将CSV文件读入数组中

function readTextFile(file) { 
    var rawFile = new XMLHttpRequest(); 
    rawFile.open("GET", file, true); 
    rawFile.onreadystatechange = function() { 
    if(rawFile.readyState === 4) { 
     if(rawFile.status === 200 || rawFile.status == 0) { 
     var allText = rawFile.responseText; 
     alert(allText); 
     } 
    } 
    } 
    rawFile.send(null); 
} 

我怀疑我的csv文件位于何处有问题?由于我们CMS的限制,我只能参考这个www.example.com/csvfile.csv文件。

任何帮助将不胜感激。

+1

是您在同一个域中的网页'file'你要求它?如果没有,那么你可能会看到[同源安全限制](https://developer.mozilla.org/en-US/docs/Web/Security/Same-origin_policy)。 – jfriend00 2014-10-17 01:01:17

+1

http://papaparse.com/ – 2014-10-17 01:06:43

+0

@JaredFarrish - 这与什么有什么关系?这个问题是关于访问文件,而不是解析它。 – jfriend00 2014-10-17 01:18:00

回答

1

这里是阅读csv文件示例代码到数组

var request = new XMLHttpRequest(); 
request.open("GET", url, false); 
request.send(null); 

var csvData = new Array(); 
var jsonObject = request.responseText.split(/\r?\n|\r/); 
for (var i = 0; i < jsonObject.length; i++) { 
    csvData.push(jsonObject[i].split(',')); 
} 
// Retrived data from csv file content 
console.log(csvData); 

这里是工作提琴例如:http://jsfiddle.net/BdCnm/450/