当社の製品には、SWFObject によってロードされる Flash アプリケーションが含まれています。ある顧客の場合、HTTPS 経由ではなく HTTPS 経由でこの SWF にアクセスすると、Flash Player はそれをロードしません。
私はお客様に、(ラッパーページではなく) SWF ファイルの URL に直接アクセスするように依頼しました。
- 彼が HTTP 経由でこれを行うと、SWF がブラウザーに読み込まれます。
- HTTPS 経由でファイルを保存すると、IE7 は「ファイルを保存」ダイアログ ボックスを表示します。これは、「Content-Disposition: attachment」ヘッダーが応答に存在することを意味します。これは、SWF が Flash Player にロードされない理由も説明します。セキュリティ対策として、そのヘッダーで提供される SWF は再生されません。
だから、私は理解しようとしていることがいくつかあります:
Content-Disposition ヘッダーがサーバーによって送信されていることを確認するにはどうすればよいですか (IE7 の奇妙なアーティファクトではありません)。ユーザーは自由に使える IE7 しか持っておらず、Firefox、Chrome などは使用できません。IE7 には、IE9 の開発者ツールにある便利な「ネットワーク」タブが含まれていません。
ヘッダーが存在すると仮定すると、どうやってそこにたどり着くのでしょうか? Tomcat 6 を実行しています。SWF は、Tomcat のデフォルトのサーブレットによって提供されています。HTTPS コネクタが使用されている場合はヘッダーが存在するように見えますが、HTTP コネクタが使用されている場合は存在しません。HTTPS コネクタを有効にすることを除いて、Tomcat の構成はそのままです。
余談ですが、私は Flash のキャッシュ クリアを信用していません。IE9 の下の私のマシンでは、ブラウザーのキャッシュと Flash Player の保存データを明示的にクリアした後でも、SWF はキャッシュによって満たされることがよくあります。ブラウザ。ここで何か不足していますか?顧客が偽のキャッシュ バージョンの SWF にアクセスしている可能性はありますか?
編集:明らかに、開発者ツールの「キャッシュのクリア」コマンドは、実際にはキャッシュをクリアしません。標準的な方法を使用すると、期待どおりの結果が得られました。
編集 2: Tomcat 内のトレースは、Content-Disposition ヘッダーが設定されていないことを示します。ブラウザが受信していないことは確かではありませんが、ブラウザがTomcatに直接接続していることがわかります。これは、ブラウザー側の奇妙な動作のようです。