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);
    });
});
相关推荐
Shely201726 分钟前
MySQL数据表管理
数据库·mysql
爬山算法34 分钟前
MongoDB(80)如何在MongoDB中使用多文档事务?
数据库·python·mongodb
APguantou40 分钟前
NCRE-三级数据库技术-第2章-需求分析
数据库·需求分析
寂夜了无痕1 小时前
MySQL 主从延迟全链路根因诊断与破局法则
数据库·mysql·mysql主从延迟
爱丽_1 小时前
分页为什么越翻越慢:offset 陷阱、seek 分页与索引排序优化
数据库·mysql
APguantou1 小时前
NCRE-三级数据库技术-第12章-备份与数据库恢复
数据库·sqlserver
Bat U1 小时前
MySQL数据库|表设计+新增+分组查询
数据库·mysql
麦聪聊数据2 小时前
企业数据流通与敏捷API交付实战(五):异构数据跨库联邦与零代码发布
数据库·sql·低代码·restful
Elastic 中国社区官方博客2 小时前
当 TSDS 遇到 ILM:设计不会拒绝延迟数据的时间序列数据流
大数据·运维·数据库·elasticsearch·搜索引擎·logstash
Omics Pro2 小时前
虚拟细胞:开启HIV/AIDS治疗新纪元的关键?
大数据·数据库·人工智能·深度学习·算法·机器学习·计算机视觉