On Thu, 17 Apr 2008 01:49:44 +0200, Peter Michaux <[EMAIL PROTECTED]>
wrote:
The XMLHttpRequest spec says "The setRequestHeader() method appends a
value if the HTTP header given as argument is already part of the list
of request headers."
This is fine but what is a problem is whether or not a new
XHMHttpRequest object has any default headers. I was trying to use the
Accept header a few days ago and I wanted to have only
Accept: application/json
but Opera has a default header
Accept: text/html, text/xhtml, etc
so my application/json was appended to the front of that list which
makes my Accept header useless as part of the client-server
communication. The server thinks that the client knows what to do with
text/html. My JavaScript certainly does NOT know what to do with
text/html. My JavaScript only knows how to handle application/json.
That seems like a problem with Opera. Have you filed a bug report?
https://bugs.opera.com/wizard/
I think all XMLHttpRequest headers should be specified as blank when
the object is created. Then the JavaScript can add any headers it
needs to add. If, when the call to send() occurs, some essential
header(s) is missing the XHMLHttpRequest object should add these
automatically but only according to specified behavior.
In general this should already be the case, but for some headers it would
pose security or privacy issues if they were allowed to be set by the
author. In any case, for Accept this was never an issue with the
specification.
--
Anne van Kesteren
<http://annevankesteren.nl/>
<http://www.opera.com/>