我在从$ .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的纪元时间,当我在在线转换器中测试时间时,它将时间转换得很好。
答案 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)
解决此问题的一种方法是在服务器上请求文件,此处没有问题,然后对服务器进行ajax GET调用:
在您的服务器上创建一个新页面,并在该页面中请求gist文件并将其内容作为响应返回。当然,您需要动态页面才能使用
将jQuery $.get
中的端点更改为该页面,例如:www.mydomain.com/highchartvalues
利润