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);
    });
});
相关推荐
DBA大董1 小时前
TDengine3.0 DBA常用的运维命令和SQL2
运维·数据库·时序数据库·dba·tdengine
ManageEngineITSM2 小时前
什么是CMDB?配置管理数据库的定义、作用与建设方法一文讲清
大数据·数据库·人工智能·资产管理·变更管理
IvorySQL2 小时前
PostgreSQL 日报|PG19 外键快速路径隐患已修复(8 月 23 日)
数据库·postgresql
SLD_Allen2 小时前
Go语言runtime全景
开发语言·javascript·golang
Elastic 中国社区官方博客2 小时前
OpenTelemetry Java 扩展:无需分叉 agent 即可自定义追踪
java·大数据·运维·开发语言·数据库·人工智能·elasticsearch
风萧何2 小时前
架构艺术,是权衡的艺术。
前端·javascript·架构
偷偷挖矿的牛马矿工2 小时前
execa NodeJs新一代child_process的强力替代品
javascript
01传说3 小时前
redis开机自启脚本
数据库·redis·缓存
这个DBA有点耶3 小时前
数据库运维的“自动驾驶”:KES-Operator如何把DBA经验编码为软件
数据库·dba·自动化运维