Highcharts配合Jquery ajax 请求本页面

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Highcharts Example.aspx.cs" Inherits="WebApp.Highcharts_Example" %>

<!DOCTYPE HTML>
<html>
        <head>
                <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
                <title>Highcharts Example</title>

                <script type="text/javascript" src="Scripts/jquery-1.8.3.min.js"></script>
                <script type="text/javascript">
                    $(function () {
                        $(document).ready(function () {
                            Highcharts.setOptions({
                                global: {
                                    useUTC: false
                                }
                            });

                            var chart;
                            chart = new Highcharts.Chart({
                                chart: {
                                    renderTo: 'container',
                                    type: 'spline',
                                    marginRight: 10,
                                    events: {
                                        load: function () {

                                            // set up the updating of the chart each second
                                            var series = this.series[0];
                                            var LoadData = function () {


                                                var drp = $("#drp").val()
                                                $.ajax({
                                                   
                                                    url: 'Highcharts Example.aspx/getRandom',
                                                    data: "{drp:"+drp+"}", 
                                                    dataType: 'json',
                                                    type: 'post',
                                                    contentType: "application/json;charset=utf-8",
                                                    success: function (data) {

                                                        var x = (new Date()).getTime(); 
                                                        var y = $.parseJSON(data.d).val;
                                                        series.addPoint([x, y], true, true);

                                                    },
                                                    error: function () { alert('Error !'); }
                                                });

                                                //   alert($("#drp").val());
                                                //                                              var x = (new Date()).getTime(), // current time
                                                //                                        y = Math.random();
                                                //                                              series.addPoint([x, y], true, true);
                                            };
                                            //LoadData();
                                            setInterval(LoadData, 2000);
                                        }
                                    }
                                },
                                title: {
                                    text: 'Live random data'
                                },
                                xAxis: {
                                    type: 'datetime',
                                    tickPixelInterval: 150
                                },
                                yAxis: {
                                    title: {
                                        text: 'Value'
                                    },
                                    plotLines: [{
                                        value: 0,
                                        width: 1,
                                        color: '#808080'
                                    }]
                                },
                                tooltip: {
                                    formatter: function () {
                                        return '<b>' + this.series.name + '</b><br/>' +
                        Highcharts.dateFormat('%Y-%m-%d %H:%M:%S', this.x) + '<br/>' +
                        Highcharts.numberFormat(this.y, 2);
                                    }
                                },
                                legend: {
                                    enabled: false
                                },
                                exporting: {
                                    enabled: false
                                },
                                series: [{
                                    name: 'Random data',
                                    data: (function () {
                                        // generate an array of random data
                                        var data = [],
                        time = (new Date()).getTime(),
                        i;

                                        for (i = -19; i <= 0; i++) {
                                            data.push({
                                                x: time + i * 1000,
                                                y: Math.random()
                                            });
                                        }
                                        return data;
                                    })()
                                }]
                            });
                        });

                    });
                </script>
        </head>
        <body>
<script src="Scripts/highcharts/highcharts.js"></script>
<script src="Scripts/highcharts/modules/exporting.js"></script>

<div ></div>

            <select >
            <option>1</option>
            <option>2</option>
            <option>3</option>
        </select>

        </body>
</html>

后台:

using System.Web.Services;
namespace WebApp
{
    public partial class Highcharts_Example : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }


        [WebMethod]
        public static string getRandom(string drp)
        {

            Random rm = new Random();

            int _drp = Convert.ToInt32(drp);
           // int drp =Convert.ToInt32(HttpContext.Current.Request.Params["drp"]);

            return "{ \"val\":" + rm.Next(100) * _drp + "}";
        }
    }
}

Highcharts模仿CPU动作,2秒一刷新。调用本页面方法,首先后台方法必须为静态的,还在ajax请求的时候contextType格式必须是如上,data传值,这个问题困扰很久以前传值都用data: { "drp": $("#drp").val() }这个格式要不老是报500错误,还有得到的数据格式,在后面必须加个d(不懂,调试时才发现),但是在调用本页面时不行。最好还是不在本页面做请求。