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



Reply via email to