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);
    });
});
相关推荐
知识分享小能手1 小时前
SQL Server 2019入门学习教程,从入门到精通,SQL Server 2019 安全机制 — 语法知识点及使用方法详解(18)
数据库·学习·sqlserver
此生只爱蛋2 小时前
【Redis】渐进式遍历
数据库·redis·github
skywalk81632 小时前
electrobun 使用TypeScript构建超快速、小巧且跨平台的桌面应用程序(待续)
前端·javascript·typescript
薛一半4 小时前
React的数据绑定
前端·javascript·react.js
爱看书的小沐4 小时前
【小沐杂货铺】基于Three.js渲染三维无人机Drone(WebGL / vue / react )
javascript·vue.js·react.js·无人机·webgl·three.js·drone
ShenJLLL10 小时前
vue部分知识点.
前端·javascript·vue.js·前端框架
·云扬·11 小时前
MySQL 主从复制实战:Xtrabackup 高效部署方案
数据库·mysql
Ama_tor12 小时前
从零开始MySQL|F盘安装,配置,简单应用以及基础语句
数据库·mysql
亓才孓13 小时前
【MyBatis Exception】Public Key Retrieval is not allowed
java·数据库·spring boot·mybatis