我尝试在JQuery ajax调用中调用一个函数,但它一直向我显示“TypeError:c.slice不是函数”,我不太明白为什么会发生这种情况?我感谢您的帮助!提前谢谢!
这是我的AJAX电话:
$.ajax({
url: "my.php",
method: "get",
dataType: "json",
data: requestJSON,
success: function(jsondata){
$.getJSON('my.php?callback=?', function (data) {
// Create the chart
$('#historicalcharts').highcharts('StockChart', {
rangeSelector : {
selected : 1
},
title : {
text : 'AAPL Stock Price'
},
series : [{
name : 'AAPL Stock Price',
data : data,
type : 'area',
threshold : null,
tooltip : {
valueDecimals : 2
},
fillColor : {
linearGradient : {
x1: 0,
y1: 0,
x2: 0,
y2: 1
},
stops : [
[0, Highcharts.getOptions().colors[0]],
[1, Highcharts.Color(Highcharts.getOptions().colors[0]).setOpacity(0).get('rgba')]
]
}
}]
});
});
});
}
我尝试模仿此链接中的函数,唯一的区别是它在每次调用时检索JSON数据,但我使用的是从php脚本获取的JSON数据。 http://www.highcharts.com/stock/demo/area
这是我的PHP代码
<?php
if (isset($_GET['request'])) {
header("content-type: application/json");
$retrievechartJSON = 'http://dev.markitondemand.com/MODApis/Api/v2/InteractiveChart/json?parameters=' . $_GET['request'];
$json = file_get_contents($retrievechartJSON);
echo $_GET['callback']. '('. $json . ')';
?>
答案 0 :(得分:4)
来自HighCharts:
无法在您自己的域之外的JSON文件上使用jQuery .getJSON()函数。但是可以使用JSONP。
您需要向PHP添加一个回调,它包装JSON然后返回该JSON对象:
示例强>:
<?php
header("content-type: application/json");
$array = array(7,4,2,8,4,1,9,3,2,16,7,12);
echo $_GET['callback']. '('. json_encode($array) . ')';
?>
通过这些更改,您可以使用jQuery&#39; $ .getJSON(),如下所示:
var url = "http://url-to-your-remote-server/jsonp.php?callback=?";
$.getJSON(url, function(data) {
var yourJSONP = data;
// render you chart here
});
以下是跨域数据的相关文档:
http://www.highcharts.com/docs/working-with-data/getting-data-across-domains-jsonp