You know, IE7 looks like a reasonable browser, but it’s not. To prove this it’s not even necessary to resort to something like CSS compliance, where no one else gets it entirely right either. It doesn’t even get HTTP right. That is, when confronted with a perfectly legitimate 204 status code if fucks up. Spectacularly.
Now why would someone be using a 204 status code? Well let’s look at “the language in the standard”:http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html:
bq.. 10.2.5 204 No Content
The server has fulfilled the request but does not need to return an entity-body, and might want to return updated metainformation. The response MAY include new or updated metainformation in the form of entity-headers, which if present SHOULD be associated with the requested variant.
If the client is a user agent, it SHOULD NOT change its document view from that which caused the request to be sent. This response is primarily intended to allow input for actions to take place without causing a change to the user agent’s active document view, although any new or updated metainformation SHOULD be applied to the document currently in the user agent’s active view.
The 204 response MUST NOT include a message-body, and thus is always terminated by the first empty line after the header fields.
p. Needless to say, if you’re doing ajax-style processing, and, say, letting people delete stuff out of a list, then having a code that let’s you say, “Yeah, we succeeded, there’s nothing more for us to say, nor any need for you to redisplay or anything, though.” is pretty damned useful.
Would you like to know what IE does to the 204 response code? It *changes it to 1223*.
For those not inculcated in the minutia of HTTP, all response codes are three digits, with the first digit indicating the general category of response (1 is informational, 2 is success, 3 is redirection, 4 is for client errors, 5 is for server errors), and the additional digits giving more specific information. 1223 isn’t even on the map here.
This has been a problem for at least five months, since that’s when “a bug was filed in the dojo toolkit’s trac about it”:http://trac.dojotoolkit.org/ticket/2418.
How can Microsoft be taken seriously? All that money, all those programmers, and they can’t do better than this?