Jquery 返回 "Undefined"

Jquery returning "Undefined"

我们正在绘制来自 Jquery 的 Google 图表数据。无论如何,“data.d”返回未定义。它不会抛出异常,只是 Google 抱怨我们传错了东西。

退后一步,看看参数的内容……好吧,这实际上是未定义的。

ManageProfile.aspx

<asp:Content ID="Content1" runat="server" ContentPlaceHolderID="head">
    <style>
        #chart_div {
            width: 100%;
            height: 100%;
        }
    </style>  
    <!--Load the AJAX API-->
    <script src="assets/js/jquery-1.10.2.js"></script>
    <script type="text/javascript" src="https://www.google.com/jsapi"></script>
 
    <script>
        var chartData; // globar variable for hold chart data
        google.load("visualization", "1", { packages: ["corechart"] });
 
        // Here We will fill chartData
 
        $(document).ready(function () {
 
            $.ajax({
                url: "ManageProfile.aspx/GetChartData",
                data: "",
                dataType: "json",
                type: "POST",
                contentType: "application/json; chartset=utf-8",
                success: function (data) {
                    chartData = data.d;
                },
                error: function () {
                    alert("Error loading chart data! Please try again.");
                }
            }).done(function () {
                // after complete loading data
                google.setOnLoadCallback(drawChart);
                drawChart();
            });
        });
 
 
        function drawChart() {
            var data = google.visualization.arrayToDataTable(chartData);
            //alert("success");
            var options = {
                title: "Company Performance Product Category Wise",
                pointSize: 5
            };
 
            var barChart = new google.visualization.BarChart(document.getElementById('chart_div'));
            barChart.draw(data, options);
 
            window.addEventListener('resize', function () {
                barChart.draw(data, options);
            }, false);
        }  
 
    </script>
 
</asp:Content>
 
<asp:Content ContentPlaceHolderID="MainContent" runat="server">
<div id="chart_div" style="height:500px"></div>
</asp:Content>
 
 

ManageProfile.aspx.cs

using System.Web.Services;
using System.Web.Script.Services;
 
namespace ASPGoogleChart.Dcr_Logged
{
    public partial class ManageProfile : System.Web.UI.Page
    {
        protected void Page_Load()
        {
            GetChartData();
 
        }
 
        [WebMethod]
        [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
        public static object[] GetChartData()
        {
            var chartData = new object[2];
            chartData[0] = new object[]{
                "Year",
                "Electronics"
            };
 
            chartData[1] = new object[]{
                20,
                40
            };
            return chartData;
        }
    }
}
 
 
 
 google.setOnLoadCallback(drawChart);
 drawChart();

将这些移动到 ajax 未完成。