使用 FusionCharts 1.0 中 setDataURL() 函数的问题

来源:互联网 发布:北京时间网络触屏版 编辑:程序博客网 时间:2024/05/17 06:32

使用 FusionCharts 1.0 中 setDataURL() 函数的问题

因为项目的原因,原来同事使用的是FusionCharts 1.0 的老版本,一直是在 html 中直接生成好,没有采用 js 的方式动态加载。新的一个 project 里,用了 MVC 框架,便没有照搬老项目中的代码,尝试了用 js 来动态加载 xml 数据展示图表。

第一步,使用了 setDataXML() 函数来动态加载 xml 字符串,作为图表的数据来源,测试了一下没有发现问题。
第二步,使用 setDataURL() 函数从服务器端获取 xml 字符串,结果图表总是提示 Invalid XML Data。

调用图表的 javascript 代码如下:

        var myChart = new FusionCharts("FusionCharts/MSLine.swf", "status_serial", "780", "400");        myChart.setDataURL("Home/LastWeekStat");        //myChart.setDataURL("1.xml");        /*        myChart.setDataXML("<chart caption='最近一周内检测表' plotgradientcolor='' bgcolor='FFFFFF' showalternatehgridcolor='0' divlinecolor='CCCCCC' showvalues='0' showcanvasborder='0' canvasborderalpha='0' canvasbordercolor='CCCCCC' canvasborderthickness='1' captionpadding='30' linethickness='3' yaxisvaluespadding='15' legendshadow='0' legendborderalpha='0' palettecolors='#f8bd19,#008ee4,#33bdda,#e44a00,#6baa01,#583e78' showborder='0'>" +"<categories>" +"<category label='04月16日' />" +"</categories>" +"<dataset seriesname='合格数量'>" +"<set value='5' />" +"</dataset>" +"<dataset seriesname='检测总量'>" +"<set value='15' />" +"</dataset>" +"</chart>"        );        */        myChart.render("chartdiv");

因为直接使用 setDataXML 函数是正常的,所以我将 setDataXML() 函数的参数内容,直接存储为 xml 放置到服务器端,使用 setDataURL 来动态加载,仍然提示无效的 xml 数据。
因为直接使用 xml 的内容无问题,所以可能是服务器端文件编码故障,将服务器端的 1.xml 文件编码为 UTF8,将文件格式保存为默认的简体中文,仍然提示无效。
将下面的 xml 编码说明放入到 xml 中,再服务器端调用,问题解决。

<?xml version="1.0" encoding="utf-8"?>
0 0