在HTTPS协议下使用FusionCharts报表插件时提示"error in loading data"的解决方法

今天在公司的一个报表项目中,IE使用FusionCharts的时候突然出现了"error in loading data"的错误提示(在火狐中是正常的)

之前在本地测试的时候正常的啊,怎么到线上就出现问题了?

由于是flash调用xml,我第一个想到的是会不会是编码的问题。

google查找了一下,http://kb.fusioncharts.com/questions/387/How+to+use+UTF-8+characters+with+PHP%3F 按照官方的说啊,把编码都改成了UTF8,而且也加上了BOM头。

echo pack("CCC",0xef,0xbb,0xbf);
echo "<"."?xml version=\"1.0\" encoding=\"UTF-8\"?".">\n";
header('Content-type: text/xml;charset=UTF-8');

加上这几行之后发现返回的数据已经没有乱码了,但是IE中点击饼图还是显示"error in loading data"啊。一下子没找到啥问题。

无意中突然想到,代码搬到线上之后,服务器是使用了HTTPS协议,会不会跟这个有关呢?于是马上加上HTTPS的关键词google一下。

发现还真的跟这个有影响。贴一下官方关于HTTPS协议使用FusionCharts的问题说明(英文不好,我就不翻译了哈)

地址:http://docs.fusioncharts.com/free/Contents/Adv_SSL.html

So, if you're using dataURL method on Internet Explorer, you need to make sure that the server does not send no-cache headers for the XML data. To do so, set the following headers for your XML Data provider page:

Cache-Control: cache, must-revalidate
Pragma: public

于是,在输出数据之后再加上几个header信息测试,IE内核的已经OK了

header("Cache-Control: cache, must-revalidate");
header("Pragma: public");

特此记录一下

时间:2012-07-16 | 分类:技术文摘 | 标签: HTTPS  FusionCharts  error in loading data 
评论列表
暂无评论
发表评论
昵称
邮箱
内容