Firefox2からFirefox3で。。。

XMLHttpRequestのsetRequestHeaderの動きがかわっている。
これを見つけた原因となるものが、Accept-Charsetヘッダ
Firefox3からは値がセットされず、ブラウザ側で決定されてしまいます。
chrome権限があればできるかもしれませんが、今回はWebアプリのお話です

W3CXMLHttpRequestを見てみると、

6. For security reasons, these steps SHOULD be terminated if the header argument case-insensitively matches one of the following headers:

- Accept-Charset
- Accept-Encoding
- Connection
- Content-Length
- Content-Transfer-Encoding
- Date
- Expect
- Host
- Keep-Alive
- Referer
- TE
- Trailer
- Transfer-Encoding
- Upgrade
- Via

どうやら、この"SHOULD be terminated"が、Firefox3から適用されて設定できなくなったんですね。
他の値は試していないのでなんともいえないですが、アプリ側で設定すべき値ではないので通常問題ないはずです。

クロスサイトXHRのバグで起こっているとは考えにくいですね。
しかし、決定的な証拠にはいたってないです。これは推測でしかありません。
ご注意を!!