Highcharts跨域数据加载完全指南:JSONP原理与实战

跨域数据

不可以在自己域名之外的 JSON 文件上使用 jQuery 的 .getJSON() 方法。不过可以使用 JSONP。

JSON 和 JSONP 的区别在于,普通的 JSON 文件只使用普通的 JSON 语法。这种方式无法实现跨域返回。使用 JSONP 时,会在 PHP 中用回调函数包裹 JSON 内容,从而返回一个 JSON 对象。如果你想显示的数据位于与你自己不同的域名上,这会非常有用。许多数据提供商都提供 JSONP 服务,比如 Google 和 Twitter。

这是一个示例:

  • 服务器端的 PHP 文件:
php 复制代码
<?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 调用回调函数的 JavaScript 代码。
js 复制代码
$(document).ready(function() {
    var options = {
        chart: {
            renderTo: 'container',
            type: 'spline'
        },
        series: [{}]
    };
    
    var url =  "http://url-to-your-remote-server/jsonp.php?callback=?";
    $.getJSON(url,  function(data) {
        options.series[0].data = data;
        var chart = new Highcharts.Chart(options);
    });
});
相关推荐
xChive2 分钟前
ECharts-大屏开发复习记录与踩坑总结
前端·javascript·echarts
江不清丶5 分钟前
Text-to-SQL实战:从自然语言到数据库查询的智能数据分析Agent设计
数据库·sql·ai·数据分析
林恒smileZAZ6 分钟前
告别满屏 v-if:用一个自定义指令搞定 Vue 前端权限控制
前端·javascript·vue.js
wefly20179 分钟前
M3U8 播放调试天花板!m3u8live.cn纯网页无广告,音视频开发效率直接拉满
java·前端·javascript·python·音视频
初次攀爬者13 分钟前
Redis与数据库的数据一致性方案解析
数据库·redis·分布式
橘颂TA23 分钟前
【MySQL】内置函数
数据库·mysql
八月瓜科技29 分钟前
擎策·知海全球专利数据库 凭差异化优势 筑科技创新检索壁垒
大数据·数据库·人工智能·科技·深度学习·机器人
搜佛说38 分钟前
sfsEdgeStore轻量级边缘计算数据存储适配平台
数据库·人工智能·物联网·边缘计算·iot
橘颂TA1 小时前
【MySQL】使用C/C++来连接 MySQL
数据库·mysql
happyboy19862111 小时前
2026大专财富管理可以转数据分析吗?
数据库·数据挖掘·数据分析