More Flash and IE 6 Gotchas (2032 Error)
I'm sure some of you are familiar with the SSL/Cache-Control header issue and Microsoft Internet Explorer 6. When Flash attempts to load data (e.g. XML) from an HTTPS url and if the serving host specifies a 'no-cache' header (or equivalent), the data returned to Flash is invalid.
Well, we just recently ran into a slightly different issue with IE6 related to a specific combination of headers (unrelated to SSL in this case).
If you attempt to load XML data from a server who just so happens to be setting gzip compression AND setting Cache-Control to a specific value of 'no-cache', the data return will be invalid and an ioError will occur. A Microsoft tech note sheds some light on the problem.
Since Flash forbids you from setting the preferred encoding on the response (to avoid gzip), the only real solution is to make the change on the host. In our case we simply changed "Cache-Control: no-cache" to "Cache-Control: no-cache, no-store, must-revalidate, max-age=-1" and it solved the problem for us.
Note that if gzip compression is enabled without the cache header all is well, and vice versa. The combination of the two is what Internet Explorer chokes on.
In general, when you start to see spurious Stream Errors (2032) when attempting to load XML data, and it works in the general case - crack open FireBug and take a look at the response headers coming back from the host you are working with.


6 Comments:
OT but...
http://www.seamcarving.com/
Check it out.
The future of image editing?
Thank you so much for this hack... you've cured my headache!
I've been working on a project that used mod_deflate and a lot flash interacting with XML datasets.
This hack actually didn't work for us--but the solution for us was to turn off a lot of mod_deflate rules...and just have gzip compression on ...
text/css
text/javascript
text/plain
text/html
and we managed to keep the site's size very low + keep the flash working properly with the xml datasets.
Wow, even after you leave AOL, you still help me out with this kind of info. Turned out our internal test servers weren't updated and I was ripping my hair out trying to figure out what the heck was going on.
Thanks man!
Thanks for the info, I'll keep an eye out for it.
Have you seen that IE is changing, once again, how they deal with embedded controls (ActiveX, Flash, etc.) to remove the hack they imposed on us in 2006? So KB912945 (http://support.microsoft.com/kb/912945) is finally dead - hooray!
I had the same blasted 2032 error for no apparent reason on IE6 (and someone even reported on IE7). This didn't solve my problem, but it got me thinking about HTTP headers.
My problem turn out to be that IE AJAX calls die in this way when I try to read the accept-language request header! I disable this for IE, and it works fine now.
Post a Comment
<< Home