我试图像这样返回JSON响应:
?([
[Date.UTC(2013,5,2),0.7695],
[Date.UTC(2013,5,3),0.7648]
]);
完整示例:https://www.highcharts.com/samples/data/jsonp.php?filename=usdeur.json&callback=?
答案 0 :(得分:1)
application/javascript
而非application/json
Access-Control-Allow-Origin
是JSONP的现代替代品。不要将它与JSONP一起使用。 callback
查询字符串参数的值作为您正在调用的JavaScript函数名称。 ?
不是有效的函数名称。 jQuery将使用真实的回调名称替换URL中的?
占位符。使用$_GET['callback']
代替"?"
。json_encode($some_array)
。Date.UTC(2013,5,2)
无效JSON。虽然它在JavaScript程序中很好,但你不应该在声称是JOSNP的东西中使用它。生成日期的字符串表示,并使用客户端逻辑将其膨胀为Date对象。因此,如果没有访问原始数据的好处,您可能需要以下内容:
header('Content-Type: application/javascript');
echo $_GET['callback'] . "(" . json_encode($feedList) . ");";
更好的是,切换到:
header('Content-Type: application/json');
header('Access-Control-Allow-Origin: *');
echo json_encode($feedList);
...然后使用XMLHttpRequest
而不是JSONP方法获取它。
答案 1 :(得分:0)
您需要使用json_encode编码该响应:http://php.net/manual/en/function.json-encode.php
使用数组时要注意深度参数