能否直接向HighCharts图表API传入JSON数据而非JSON URL?
完全可行
你可以完全绕过Highcharts自带的getJSON请求方法,改用原生fetch(或其他HTTP请求库)自行发起API请求并添加自定义请求头,拿到数据后再传递给Highcharts渲染图表。
修改后的代码示例(用原生fetch):
function draw_chart(data_url, symbol, div_id) { console.log("Fetching aggregates from: " + data_url) // 自行发起请求,添加自定义请求头 fetch(data_url, { method: 'GET', headers: { 'Custom-Header': '你的自定义头值', // 替换为实际需要的自定义请求头 'Content-Type': 'application/json' } }) .then(response => { if (!response.ok) { throw new Error('请求失败'); } return response.json(); }) .then(data => { // 拿到数据后渲染图表 Highcharts.stockChart(div_id, { rangeSelector: { selected: 1 }, title: { text: `${symbol} Stock Price` }, series: [{ name: symbol, data: data, tooltip: { valueDecimals: 2 } }] }); }) .catch(error => { console.error('获取数据出错:', error); }); }
补充说明:
- 如果你习惯用
axios这类第三方库,写法类似,只需把fetch部分换成axios的请求逻辑即可,核心都是先拿到数据再调用Highcharts的渲染方法 - 这种方式既能自由控制请求头、请求方法等参数,也完全不影响Highcharts图表的正常展示
- 新增的错误捕获逻辑可以帮你快速排查请求失败的问题
内容的提问来源于stack exchange,提问作者Pawan
相关产品推荐
相关产品推荐

