This bug seems to apply to Safari 3.2. Is that accurate? I wonder what % of people are still running that version. Or is it still present in 4? Can you make a mooshell that demonstrates this so we can test it?
On Mon, Oct 26, 2009 at 12:34 PM, FrozenSkys <[email protected]>wrote: > > Aaron, thanks for the reply, but the problem is that onSuccess never > fires - I have done some more investigation and it looks like there is > a bug in WebKit with Async requests and Form Posts > > https://bugs.webkit.org/show_bug.cgi?id=23933 > > The workaround appears to be to set async: false on the request. > > Regards, > Richard. > > > On Oct 26, 5:37 pm, Aaron Newton <[email protected]> wrote: > > have you tried throwing a try/catch around the onsuccess contents and > > logging any errors you encounter? > > > > On Mon, Oct 26, 2009 at 3:41 AM, FrozenSkys <[email protected] > >wrote: > > > > > > > > > > > > > I can get the code below to work on all other browsers but in both > > > chrome and safari (both WebKit based) I get the onrequest() event > > > firing but nothing else - This happens both on windows and OS X. I > > > have tried debugging with the console and using Fiddler2 but with no > > > joy - from fiddler it looks like the request is never actually made. > > > There is a basic example athttp://app2.frozenskys.comthat this code > > > is taken from. > > > > > Thanks in Advance > > > Richard. > > > > > <script type="text/javascript" charset="utf-8"> > > > var uuid = "" > > > > > for (i = 0; i < 32; i++) { > > > uuid += Math.floor(Math.random() * 16).toString(16); > > > } > > > > > var req = new Request({ > > > method: 'get', > > > headers: {'X-Progress-ID': uuid}, > > > url: 'http://app2.frozenskys.com/upload/progress/', > > > initialDelay: 500, > > > delay: 1000, > > > limit: 10000, > > > onSuccess: function(reply) { > > > console.debug("Got a reply"); > > > test = JSON.decode(reply); > > > console.dir(test); > > > console.debug(test.state); > > > switch(test.state) { > > > case "uploading": > > > percent = 0.00 + parseFloat(Math.floor > > > ((test.received / test.size)*1000)/10); > > > console.debug("Uploading : %s", percent); > > > break; > > > case "starting": > > > console.debug("Starting..."); > > > break; > > > case "error": > > > console.debug("Error : %s", test.status); > > > console.warning("Error : %s", test.status ); > > > break; > > > case "done": > > > console.debug("Done..."); > > > req.stopTimer(); > > > break; > > > default: > > > console.debug("Oooops!"); > > > break; > > > } > > > }, > > > onRequest: function(){ > > > console.debug("Request Started"); > > > }, > > > onComplete: function(){ > > > console.debug("Request Complete"); > > > }, > > > onException: function(header,value){ > > > console.debug("Exception setting : %s", header); > > > console.dir(header); > > > console.dir(value); > > > }, > > > onFailure: function(xhr){ > > > console.debug("Failure : %s", xhr); > > > console.dir(xhr); > > > } > > > }) > > > > > $('submit').addEvent( 'click', function(evt){ > > > console.debug("StartProgressBarRequests"); > > > filename = $("id_file").get('value').split(/[\/\\]/).pop(); > > > document.getElementById("upload_form").action="/upload/?X- > > > Progress-ID=" + uuid > > > req.startTimer('X-Progress-ID=' + uuid); > > > }); > > > > > </script> >
