为什么';当我使用Ajax时,HighCharts会渲染吗?

为什么';当我使用Ajax时,HighCharts会渲染吗?,ajax,highcharts,Ajax,Highcharts,我有一个图表,它在路径/charts/chart1处加载得很好。为了将图表的长加载时间与网页的其余部分分开,我使用Ajax加载图表。以下是我使用的代码: $(function() { $.ajax({ type: 'GET', url: '/charts/chart1', success: function(response) { $('#firstChart').append(response); } }); }); 但是,该图表未加载到#

我有一个图表,它在路径
/charts/chart1
处加载得很好。为了将图表的长加载时间与网页的其余部分分开,我使用Ajax加载图表。以下是我使用的代码:

$(function() {
  $.ajax({
    type: 'GET',
    url: '/charts/chart1',
    success: function(response) {
      $('#firstChart').append(response);
    }
  });
});
但是,该图表未加载到
#firstChart
中。位于
/charts/chart1
的实际
div
的id是
#chart1

我已尝试通过添加以下代码重新加载图表:

chart1 = $('#chart1');
options = chart1.highcharts().options;
chart1 = new Highcharts.chart(options);
在控制台
/charts/chart1
上运行此代码时,我会重新加载完全相同的图表。但是,当在进行Ajax调用的页面上运行此命令时,我得到一个错误
uncaughttypeerror:chart1.highcharts不是一个函数
。此外,控制台中的
Highcharts.charts
返回一个空数组,这意味着该图表不会与Ajax请求一起提取


为什么在转到
/charts/chart1
时图表加载良好,但在通过Ajax加载时图表不加载

确保在发出AJAX请求的页面上加载Highcharts库。您不需要在
/charts/chart1
上加载Highcharts,除非您希望该页面也可以独立使用。
/charts/chart1
需要提供的重要内容是
$('#chart1')中的数据将告诉Highcharts库如何在发出AJAX请求的页面上呈现图表

事实上,在
/charts/chart1
和发出AJAX请求的页面上加载Highcharts库可能会给您带来很多好处,因为Highcharts被多次加载


否则,您的AJAX函数是正确的,我可以通过Highchart示例使它在localhost上运行。如果您仍然存在问题,请仔细检查您的
/charts/chart1
路径是否确实将Highcharts数据返回到请求页面。

如果您可以创建一个JSFIDLE,请使用echo@模拟Ajax您的“响应”是什么样子的,这将非常有用?