js数据从csv转换为特定格式,加载csv时出错

时间:2017-07-11 13:21:04

标签: javascript csv d3.js

我有一个csv文件:

title,number1,number2
M,12,22
T,17,27
W,7,17
T,17,27
F,23,33

我想要在我的js文件中以这种格式编写的东西,因为程序的其余部分使用这种格式的数据。修改所有代码将很困难。我更喜欢使用csv转换。

dataDailySalesChart = {
        labels: ['M', 'T', 'W', 'T', 'F'],
        series: [
            [12, 17, 7, 17, 23],
            [22, 27, 17, 27, 33]
        ]
    };

我尝试了这段代码但是没有用:

$(document).ready(function() {
        $.ajax({
            type: "GET",
            url: "test.csv",
            dataType: "text",
            success: function(data) {processData(data);}
        });
    });

    function processData(allText) {

        var allTextLines = allText.split(/\r\n|\n/);
        var headers = allTextLines[0].split(',');
        var serie1 = allTextLines[1].split(',');
        var serie2 = allTextLines[2].split(',');
        var seriesTest = [serie1,serie2];

        dataDailySalesChart = {
            labels: headers,
            series: seriesTest
        };

    }

但我有错误:

jquery-3.1.0.min.js:4 XMLHttpRequest cannot load file: test.csv. Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https

你知道为什么我会收到这个错误吗?

1 个答案:

答案 0 :(得分:0)

$.ajax({
    type: "GET",
    // This is causing the error: test.csv is not a valid url
    url: "test.csv",
    dataType: "text",
    success: function(data) {processData(data);}
});

您在哪里尝试加载csv文件? test.csv不是ajax请求的有效URL。您应该从使用/path/to/test.csv加载页面的同一域中请求它,或者从具有某事物的其他域中请求它。比如https://somedomain.com/path/to/test.csv