ITコンサルの日常

ITコンサル会社に勤務する普通のITエンジニアの日常です。

ダウンロードのダイアログが二回表示される

なんか前にも同じ問題にハマったことがあって、その時はリクエストメソッドに制限がなかったため、POSTをやめてGETにしてみたら出なくなったというところでしたが、今回はGET禁止な環境なので、仕方なく他の手を探すことに。
既に稼動しているシステムで、同じようにやっているにもかかわらず、ダウンロードダイアログが二回表示されないものがあったので、レスポンスヘッダを比較してみることに。
そういえば、パケットキャプチャって毎度なんかツールが必要だなぁとか思いつつ、使わずになんとかしてきてしまっているので、少しEtherrealに取り組んでみることに。
未だにWindowsNT4.0な開発環境のせいか、それともそもそもなのか、一般ユーザだとネットワークインタフェースが表示されなかったので、Administratorで作業をすると、無事にパケットキャプチャすることが出来ました。設定っていえば、ほとんどポート指定するぐらいなので、とても簡単でよいですね。まあ、深い使い方は色々あるのかも知れないですが。
でもって、レスポンスヘッダを比較したところ、何にも変わらない。。なんだか違うところに原因がありそうな感じ。
仕方がないのでGoogleを調べてみたところ、以下の記事がヒットしました。
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?forum=12&topic=5606
なぜかリンク切れっぽいので、以下のリンクからキャッシュをたどるのが良いかも。
http://sleipnir.excite.co.jp/search.gw?search=Content-Disposition+inline&target=combined&look=sleipnir_jp
このページには、以下の二つの策が提示してありました。

  • Content-Dispositionヘッダのattachmentをinlineに変更
  • Content-Typeヘッダのoctet-streamをoctet-stream-dummyに変更

結論、うちの環境では両方の対策を施すことで、ダウンロードのダイアログが一回だけ表示されるようになりました。そもそもの原因はよく分からんのだが、直ったからまあいいか?