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