Sign in to follow this  
dkorz

querystring args trimmed from setDataURL()

Recommended Posts

I am evaluating FusionCharts and have gotten a simple chart to appear when using setDataXML(). I have a web service that requires querystring parameters. FC is trimming off all but the last querystring parameter and appending FCTime=nnnn. I've searched the forums and discovered the FCTime is an anti-caching mechanism (can this be turned off?). I've also seen several post where escaping the URL is supposed to fix the problem but everything I've tried has failed.

 

 

 

My web page is simple. I include FusionCharts.js in the header and have the following in the body.

 

 

 

<div id="id_chart" style="float: left;"></div>

<script type="text/javascript">

      gi.chart = new FusionCharts("/FusionCharts/Column3D.swf",

                                       "chartid", "600", "300", "0", "0" );

       var dataurl = "/api/stats?"

                           + "target=0c0202&initiator=0c0200&lun=0";

                          + "&begintime=2009-05-01 00:00"

                           + "&endtime=2009-05-01 23:59";

       console.log(dataurl);

       var url1 = encodeURI(dataurl);

       console.log(url1);

       var url2 = escape(dataurl)

        console.log(url2);

        gi.chart.setDataURL(url2);

        gi.chart.render("id_chart");

</script>

 

 

 

console is the Firebug console. it shows:

 

/api/stats?target=0c0202&initiator=0c0200&lun=0&begintime=2009-05-01 00:00&endtime=2009-05-01 23:59

 

/api/stats?target=0c0202&initiator=0c0200&lun=0&begintime=2009-05-01%2000:00&endtime=2009-05-01%2023:59

 

/api/stats%3Ftarget%3D0c0202%26initiator%3D0c0200%26lun%3D0%26begintime%3D2009-05-01%2000%3A00%26endtime%3D2009-05-01%2023%3A59

 

 

 

using any of the values in setDataURL yields that same results. I am running an interactive debugger on the web server so I know the request is being made (not cached by the broswer or anything else).

Edited by Guest

Share this post


Link to post
Share on other sites

Unfortunately I have to work with FusionCharts again and therefore need to get around this issue. On the Javascript console the URL provided to setDataURL() is:

 

 

 

%2Fgims%2Fperfmon%2Fchart%2Ftimeseries_latency%3Finitiator%3D10000000c9732b4d%26target%3D207800c0ffd53a9f%26lun%3D1%26begintime%3D2009-08-17%26endtime%3D2009-08-17T23%3A59%26series%3Dread%26start%3D0%26limit%3D1440

 

 

 

From the debugger window:

 

 

 

INFO: XML Data provided using dataURL method.

 

dataURL provided: /gims/perfmon/chart/timeseries_latency?initiator=10000000c9732b4d&target=207800c0ffd53a9f&lun=1&begintime=2009-08-17&endtime=2009-08-17T23:59&series=read&start=0&limit=1440

 

dataURL invoked: /gims/perfmon/chart/timeseries_latency?initiator=10000000c9732b4d&target=207800c0ffd53a9f&lun=1&begintime=2009-08-17&endtime=2009-08-17T23:59&series=read&start=0&limit=1440&FCTime=109

 

ERROR: An error occurred while loading data. Please check your dataURL, by clicking on the "dataURL invoked" link above, to see if it's returing valid XML data. Common causes for error are:

 

No URL Encoding provided for querystrings in dataURL. If your dataURL contains querystrings as parameters, you'll need to URL Encode the same. e.g., Data.asp?id=101&subId=242 should be Data%2Easp%3Fid%3D101%26subId%3D242

 

Different sub-domain of chart .swf and dataURL. Both need to be same owing to sandbox security.

 

Network error

 

 

 

When I click the URL I get the XML document (which works when I save it and load it as a static file served by the web server). I amusing FusionCharts v3.1.1.

Share this post


Link to post
Share on other sites

The XML returned (I removed most of the points):

 

 

 

<?xml version="1.0" encoding="UTF-8"?>

 

<chart caption="10000000c9732b4d - 207800c0ffd53a9f - 1" subCaption="Average Latency (

Share this post


Link to post
Share on other sites

It is definitely the endtime parameter which include a colon to separate the hours from minutes. I tried using %3A instead of ":" but it had no effect.

Share this post


Link to post
Share on other sites

Encoding the ':' as %253A works, at least with Debug turned off.

 

 

 

If debug is enabled (I'm using the JavaScript FusionCharts object) then the browser locks up and a pop-up from Adobe Flash Player 10 is displayed saying "A script in this movie is causing Adobe Flash Player 10 to run slowly. If it continues to run, your computer may become unresponsive. Do you want to abort this script?". I let it run a few times but it never recovers. I did this using FireFox 3.0.18 on Ubuntu 9.04 and FireFox 3.5.2 and IE 7 on Windows XP.

Edited by Guest

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this