Savarese.Org

Software Development Work-arounds


Stopwatch icon

If you see people coping with a problem you've already dealt with, maybe you should share that information to save them some time. Here's my attempt to do that.

Work-arounds for Annoying Problems

1. Why does XMLHttpRequest return bizarre status codes (e.g., 12030 and 12152) when posting to an HTTPS URL with MSIE?

1.

Why does XMLHttpRequest return bizarre status codes (e.g., 12030 and 12152) when posting to an HTTPS URL with MSIE?

The only challenging aspect of client-side Web programming is the long history of bugs, incompatibilities, lack of standards compliance, and all-around poor implementation of many a Web browser.

This is an old problem whose cause is Microsoft Internet Explorer's (at least some versions) inability to process properly HTTP/1.1 keep-alives via SSL. The strange status codes are WinInet error codes, manifesting themselves with values of 12029, 12030, 12031, 12032, 1252, 1259, and possibly others. You can find a list of WinInet error codes in the WinInet API reference documentation. Internet Explorer 7.0 does not appear to have this problem. Therefore, one possible work-around is to detect the user agent on the server. If it's MSIE 6 or less, disable keep-alives. This work-around is simple to implement, but server-specific, so I do not provide example configuration directives.

Note, this work-around is useful only if you are deploying a Web application that must support MSIE 6 and you possess administrative control over the Web server. If you are writing a reusable JavaScript library for consumption by other developers, this work-around will not help you.

More to come …