Re: XHR LC comments

Laurens Holst wrote:
 > Julian Reschke schreef:
 >> Sorry, was reading one thing, but thinking about something else.
 >>
 >> Thinking of it, could you please add a clarification that setting to 
an empty string is legal, and MUST NOT be ignored? I recall that 
Microsoft's original XHR (ActiveX) implementation got that wrong, not 
setting the header at all.
 >
 > When invoking request.setRequestHeader('Accept', ''):

Laurens, thanks a *lot* for testing this.

 > - Firefox 3b5 removes the Accept header

Ouch. Has this been raised as a bug yet?

 > - Internet Explorer 8 (in IE7 mode) sends Accept: */*

Ouch. Has this been raised as a bug yet?

 > - Safari 3.1.1 sends Accept:

Good.

 > - Opera 9.24 sends Accept: text/html, application/xml;q=0.9, 
application/xhtml+xml, image/png, image/jpeg, image/gif, 
image/x-xbitmap, */*;q=0.1

Not good.

 > When invoking request.setRequestHeader('Accept', null):
 >
 > - Firefox 3b5 removes the Accept header

Makes sense, but isn't what XHR1 requires.

 > - Internet Explorer 8 (in IE7 mode) sends Accept: null

You really mean the four characters n-u-l-l? Ouch,

 > - Safari 3.1.1 sends Accept: null
 > - Opera 9.24 sends Accept: text/html, application/xml;q=0.9, 
application/xhtml+xml, image/png, image/jpeg, image/gif, 
image/x-xbitmap, */*;q=0.1

I notice that none of the browsers does what XHR1 requires, but at least 
*one* (FF) does something useful.

 > So it is clear that here, too, browsers are in great disagreement. I 
am not sure what the correct approach here is, though '' meaning setting 
“Accept” and null meaning removal of the header sounds sensible.
 >
 > Note by the way that Opera always prepends the set Accept header to 
its default value, resulting in e.g. Accept: */*, text/html, 
application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, 
image/gif, image/x-xbitmap, */*;q=0.1 when invoking 
request.setRequestHeader('Accept', null);

That should be considered a bug.

 > I can’t believe how horribly broken this all is. No wonder few people 
depend on this header. Fortunately, as a result it can also be fixed 
without breaking much.

Also, this shows that it's *not* a good idea to just document what the 
vendors happen to come up with.

 > I’ve also posted these results at http://www.grauw.nl/blog/entry/470 
, the page source contains a test case.

BR, Julian

Received on Thursday, 15 May 2008 19:19:14 UTC