将数组从文件加载到jQuery数组中的问题

时间:2013-10-13 00:52:09

标签: jquery

我在从$ .get()的文件中加载数组时遇到问题。我获得了一个很好的HTTP状态代码,因此访问了该文件,但它没有将其转换为数组。

这是我的代码

$(function() {

    $.get('https://gist.github.com/storbeck/6956620/raw/e274c8af60ef25e7bc481fded0c9e4e8e8412e75/testdata', function(data) {
        $('#container').highcharts('StockChart', {      

            rangeSelector : {
                selected : 1
            },

            title : {
                text : 'Test Data'
            },

            series : [{
                name : 'Data',
                data : data,
                tooltip: {
                    valueDecimals: 2
                }
            }]
        });
    });
});

这是当前代码的jsFiddle无效。

我能够通过将数组复制/粘贴到数据变量而不使用$ .get来使其工作,所以我不认为数组是问题。这是that version

我遇到问题的另一件事是Highcharts的纪元时间,当我在在线转换器中测试时间时,它将时间转换得很好。

3 个答案:

答案 0 :(得分:2)

你得到一个空的结果,因为 您尝试加载的页面包含Access-Control-Allow-Origin标题 这限制了谁可以远程加载页面。 $ .ajax,$。post,$ .get都不会加载此页面,因为它们已被阻止。

如果您将脚本加载到本地浏览器中,您将在浏览器控制台日志中看到:

XMLHttpRequest cannot load
https://gist.github.com/storbeck/6956620/raw/e274c8af60ef25e7bc481fded0c9e4e8e8412e75/testdata.
Origin http://www.yourdomain.com is not allowed by Access-Control-Allow-Origin. 

答案 1 :(得分:0)

它是同源政策问题......

如果您有权访问生成数据的文件,则可以使用JSONP,数据应使用回调函数进行格式化。 如果您有权访问服务器,可以添加如下内容:

Access-Control-Allow-Origin: ...

但可能对你有用的唯一方法是先用PHP, ASP或其他任何脚本获取结果,然后用你的ajax调用该脚本。但这应该与c相同。

希望它有所帮助。

答案 2 :(得分:0)

这是因为Same Origin Policy

解决此问题的一种方法是在服务器上请求文件,此处没有问题,然后对服务器进行ajax GET调用:

在您的服务器上创建一个新页面,并在该页面中请求gist文件并将其内容作为响应返回。当然,您需要动态页面才能使用

将jQuery $.get中的端点更改为该页面,例如:www.mydomain.com/highchartvalues

利润