Javascript 谷歌图表错误';不是数组';关于Ajax更新

Javascript 谷歌图表错误';不是数组';关于Ajax更新,javascript,ajax,jsp,Javascript,Ajax,Jsp,我有一个简单的谷歌图表,它在初始页面加载时可以很好地呈现以下数据: [['days','AA','BB'], ['270',15,15],['240',19,19],['210',23,23],['180',31,31],['150',34,34],['120',47,47],['90',57,57],['60',71,71],['30',81,81],['0',94,94]] 当我试图通过Ajax调用刷新它时,它当前返回完全相同的数据,我得到一个错误“不是数组” 这是我正确绘制图表的初始函数

我有一个简单的谷歌图表,它在初始页面加载时可以很好地呈现以下数据:

[['days','AA','BB'], ['270',15,15],['240',19,19],['210',23,23],['180',31,31],['150',34,34],['120',47,47],['90',57,57],['60',71,71],['30',81,81],['0',94,94]]
当我试图通过Ajax调用刷新它时,它当前返回完全相同的数据,我得到一个错误“不是数组”

这是我正确绘制图表的初始函数:

    <script type="text/javascript">
      var chart;
      var options;

      google.load("visualization", "1.1", {packages:["bar"]});
      google.setOnLoadCallback(drawChart);

      function drawChart() {
        var dataArray = ${initialChartData};
        var data = google.visualization.arrayToDataTable(dataArray);

        options = {
          chart: {
            title: 'Bookings by Days Before Holiday Start Date',
            subtitle: 'Sales, Expenses, and Profit: 2014-2017',
          }
        };

        chart = new google.charts.Bar(document.getElementById('columnchart_material'));

        chart.draw(data, options);
      }
    </script>
要在初始页面加载时正确更新Ajax响应,需要对上述代码进行哪些更改?

只需再次执行此操作:

  var chart = new google.visualization.Bar(document.getElementById('columnchart_material'));
  chart.draw(data, options);

如果您的数据已经是正确的格式,则无需进行转换,因此您可以使用
chart.draw(responseText,options)

只需在
success
handler中调用
drawChart()
?如果drawChart()引用初始数据${initialChartData},我看不出这将如何工作。请参阅更新的问题。具体的问题是,我在Ajax响应中得到了一个错误“不是数组”。如果响应已经是DataTable格式,请直接使用它。如果没有数组,arrayToDataTable显然无法工作。
  var chart = new google.visualization.Bar(document.getElementById('columnchart_material'));
  chart.draw(data, options);