XMLHttpRequestのgetResponseHeaderでカスタムhttpヘッダが取得できない?
このおかげで5時間くらい悩みまくりました。環境はWindows Server 2003 R2 SP2 Enterprise Edition(体験版)とクライアントはWindows XP SP2+IE 6.0です。
まず、同一ホスト(www.exsample.com)に仮想ディレクトリ/xfolderと/yfolderを作成します。
次に、xfolderに独自のhttpヘッダを指定します。値そのものが悪いのでは?というのはまぁなしで。
xfolderにはこんなhtmlを置きます。
<html><body>
<a href="http://www.exsample.com/yfolder/go.aspx">こっちへGo</a>
</body><html>
そして、/yfolder/go.aspx内ではこんなJavaScriptを書きます。
xmlhttp = new XMLHttpRequest(); //IEではこうというのは本質ではないので省略
(略)
xmlhttp.open('GET', href.location, false); //記憶で書いているんですが、確かGET
xmlhttp.send(null);
document.write("HeaderA:" + xmlhttp.getResponseHeader("HeaderA"));
アンカーの「こっちへGo」をクリックすると、同一ホストの場合、なぜかgetResponseHeader()で独自追加したhttpヘッダが取得できません(空文字列が返却される)。そこでgo.aspxを/yfolderではなく、別ホスト(another.exsample.com)に配置すると、このサンプルは期待したとおりHeaderAの値を取得します。
同一のホスト内だったらIISはカスタムhttpヘッダ送らないんでしょうかね?