highchart json ajax问题

时间:2012-01-23 03:20:45

标签: javascript json highcharts

我是网络开发的新手,我通常在服务器端工作。我正在做一个小爱好的电子项目,我在我的局域网上有一个netduino服务器json请求。 netduino以这种格式返回json:

[ { "sensor" : "bk", "temp" : "68.9000015", "time" : "01/01/2009 01:04:46"},{ "sensor" : "mt", "temp" : "69.0124969", "time" : "01/01/2009 01:04:46"},{ "sensor" : "hlt", "temp" : "68.9000015", "time" : "01/01/2009 01:04:46"} ]

我想让传感器成为我的系列{bk,mt,hlt}(此回归中还有两个系列)

我的ajax请求似乎没有发送到我的netduino,我在httpfox监视请求,并没有看到192.168.0.11 ...

这是js:

    //data arrays for holding the points
    var HLT=[],
        MT =[],
        BK =[],
        PC =[],
        CL =[];
    var chart;

    //after DOM is loaded setup timeout to call the ajax method
    $(document).ready(function() {
        setInterval(reqData, 5000);

        options.series[0].data = HLT;
        options.series[1].data = MT;
        options.series[2].data = BK;
        options.series[3].data = PC;
        options.series[4].data = CL;

        //call function to render the chart and setup the options
        renderChart();

    });

    //this function requests the data
    function reqData(){
    $.ajax({
        url: "http://192.168.0.11/"+Math.random(),//using math.random to avoid browser caching
        contentType: "application/json; charset=utf-8",             
        success: mergeData(data)
    });
    }

    //this function merges the data and refreshes the table
    function mergeData(data){
    //$(this).addClass("done");
    }

    function renderChart(){
        chart = new Highcharts.Chart(options);
    }

图表在页面加载时呈现,但我没有看到调用reqData。请帮忙。还有什么是更新系列数据的好方法?我不是很好用javascript将foreach匹配系列名称工作?我想绘制临时温度的临时(y轴)和日期时间(x轴)。

谢谢!

---编辑1/23/2012 ---

在这个函数中,我不清楚这个问题是什么意思:

    //after DOM is loaded setup timeout to call the ajax method
    $(document).ready(function() {
        setInterval(reqData, 5000);

        options.series[0].data = HLT;
        options.series[1].data = MT;
        options.series[2].data = BK;
        options.series[3].data = PC;
        options.series[4].data = CL;

        //call function to render the chart and setup the options
        renderChart();

    });

reqData()函数没有被触发(通过在httpfox中看不到获取请求到192.168.0.11来验证),但是renderChart()被调用了......有什么想法吗?

2 个答案:

答案 0 :(得分:0)

我看到你把数据发布到IP了。这是否与您托管此页面的域名相同?如果没有,您正在尝试向其他域发出请求。在这种情况下,您必须使用JSONP才能使其工作。请参阅http://api.jquery.com/jQuery.getJSON/

上的JSONP

答案 1 :(得分:0)

你确定没有其他问题可能会“妨碍”吗?请求数据的调用看起来是正确的;我把它放在下面的小提琴中:

http://jsfiddle.net/malonso/cJ3TJ/3/

当你转到你的页面时,你是否看到任何javascript错误?