解决方案 »

  1.   

     function onDataReceived(series) {
                    //alert(series);
                    data.push(series);
                    $.plot("#loadchart", data, options);
                }
    放到window对象下
    或者window.onDataReceived=function(series) {
                    //alert(series);
                    data.push(series);
                    $.plot("#loadchart", data, options);
                }
      

  2.   

    jsonpCallback: "onDataReceived",配置里的这一行去掉。
      

  3.   

    type: "GET",
    换成
    type: "POST",
      

  4.   

    To: functionsub
    谢谢,好了!请教一下,问什么这个配置会有这个影响?
      

  5.   

    谢谢各位高人。
    我首先试了slwsss的方法,将onDataReceived改成window.onDataReceived = function(),就找不到函数了,后来改成onDataReceived = function(),这样虽然没有错误提示,但是仍然有多次会不出图来。
    接下来根据functionsub的指点,去除了jsonpCallback配置,这次我连续刷新20次都能正常显示。
    所以我将分配siwsss 20分,functionsub 80分以表心意。
    同时谢谢u011514731的指点。
      

  6.   


    JSONP实际就是生成一个script标签,服务器返回的是 一段可以执行的js代码,你配置了这个选项之后,后台生成的就是
    onDataReceived('xxxx'),这时候onDataReceived是一个全局函数,但是你的onDataReceived方法是声明在函数内部的,所以就会出错。去掉这个配置,JQUERY内部会在window下生成一个随机的函数名大概是jqueryxxxx_xx这样,这样就不会出这个问题了。
    比如你配置了jsonp:'_callback',实际的请求路径就是xxx.php?_callback=jqueryxxx_xxx
    再配置jsonpCallback:'_functionname',实际请求路径是xxx.php?_callback=_functionname
    后台接受到请求后,获取_callback的值再生成对应的代码就是_jqueryxxx_xx({a:1}),配置了jsonpCallback就是_functionname({a:1})一般情况下配置好jsonp就可以了,jsonpCallback一般用来在后台代码写死了调用方法名的时候配置。1L的方法也是一个解决方案。