Javascript 具有外部CSV的Highchart(在外部域中)

Javascript 具有外部CSV的Highchart(在外部域中),javascript,json,csv,asp-classic,highcharts,Javascript,Json,Csv,Asp Classic,Highcharts,我可以在另一个域中用JSON值绘制图表。我使用ajax和回调来创建跨域并获取值 function drawChart() { var options = { chart: { renderTo: 'chart01', marginRight: 0, marginTop: 60, type: 'column', options3d: {

我可以在另一个域中用JSON值绘制图表。我使用ajax和回调来创建跨域并获取值

function drawChart() {
    var options = {
        chart: {
            renderTo: 'chart01',
            marginRight: 0,
            marginTop: 60,
            type: 'column',
            options3d: {
                enabled: true,
                alpha: 15,
                beta: 15,
                viewDistance: 25,
                depth: 90
            }
        },
        plotOptions: {
            column: {
                depth: 90
            }
        },
        title: {
            text: 'CSV Values'
        },
        xAxis: {
            title: {
                text: '',
                margin: 0
            },
            categories: []
        },
        yAxis: {
            title: {
                text: 'Title'
            },
        },
        tooltip: {
            enabled: false
        },
        series: []
    };
    $.ajax({
        url: "http://<external_path>/json.asp?callback=?",
        data: 'show=impression',
        type: 'post',
        dataType: "json",
        success: function (data) {
            var intSeries = data.length;
            var cont = 0;
            if (intSeries > 0) {
                intSeries--;
                options.xAxis.categories = data[cont]['data'];
                while (cont < intSeries) {
                    options.series[cont] = data[cont + 1];
                    cont++;
                }
                var chart = new Highcharts.Chart(options);
            }
        }
    });
};
它很好用。我的问题是使用外部CSV或XML运行图表。我已经证明了一些方法,但是我总是得到一个错误。我使用新的外部路径从
数据类型:“json”
更改为
数据类型:“text”
数据类型:“xml”
(CSV和xml模式),但它不起作用

如何从外部CSV或XML文件获取值??我不能把那个文件放在我的服务器上,所以我需要它在另一台服务器上

更新: 我在服务器上添加了以下值以启用CORS:

Access-Control-Allow-Credentials: true
Access-Control-Allow-Headers:     Authorization
Access-Control-Allow-Methods:     GET, POST, PUT, DELETE
Access-Control-Allow-Origin:      *
我修改了ajax方法:

$.ajax({
    url: "http://<external_path>/test.csv",
    type: 'post',
    dataType: "text",
    xhrFields: {
        withCredentials: true
    }
    //-- I've tried to authenticate without success
    //beforeSend: function (request){ request.setRequestHeader( ""Authorization"", btoa('<user>:<pass>')); },
    success: function (data) {
        //---- Code to get values ----//
    }
});
$.ajax({
url:“http:///test.csv",
键入:“post”,
数据类型:“文本”,
xhrFields:{
证书:正确
}
//--我试图验证,但没有成功
//beforeSend:function(request){request.setRequestHeader(“'Authorization”“,btoa(':');},
成功:功能(数据){
//----获取值的代码----//
}
});

更改之后,我继续执行401错误。

一种方法是在服务器上运行一个简单的代理,为您获取数据。i、 e.您从代理进程请求数据,代理进程从远程系统请求数据并将其返回给您


这个问题是一个需要绕过跨域限制的典型例子。StackOverflow上有很多关于此主题的问题和答案。

您是否在外部服务器上设置了CORS?允许来自不同域的流量和AJAX请求。我将尝试设置为启用…以便您具有授权。你把证书和请求一起传递了吗?我已经考虑过你的方式了。这将是我最后的选择。谢谢我读了很多关于跨域限制的书,但是我没有成功。
$.ajax({
    url: "http://<external_path>/test.csv",
    type: 'post',
    dataType: "text",
    xhrFields: {
        withCredentials: true
    }
    //-- I've tried to authenticate without success
    //beforeSend: function (request){ request.setRequestHeader( ""Authorization"", btoa('<user>:<pass>')); },
    success: function (data) {
        //---- Code to get values ----//
    }
});