Web サイトの仮想 URL からビデオを再生するのに苦労しています。実際のファイルは Web アクセス可能なルートの下のどこにもないため、ビデオに直接リンクすることはできません。また、仮想パスは実際には、追加のアクセス許可チェックなどに使用される HTTP ハンドラー (ASP.Net "ASHX") です。
私はビデオ アクセスを設定しようとしていました (JWPlayer を使用しましたが、その時点までには到達しませんでした)。最初に使用した ASHX ハンドラーは、HTTP ヘッダーを使用してファイルをダウンロードとして送信するだけでした。content-disposition: attachment; filename=example.mp4
ブラウザー (Chrome 20.0.1132.57) の動作を、直接リンクの .mp4 ファイルと仮想リンクのブラウジングで比較したところ、直接リンクは小さな埋め込みビデオ プレーヤーで開くことに気付きましたが、仮想リンクのみが表示されます。ファイルをダウンロードします。
HTTP ヘッダーの違いを (Fiddler を使用して) キャプチャし、ビデオ用の特別な ASHX を作成しようとしましたが (失敗しました)、IIS とまったく同じ応答を送信します (mp4 の特定の構成はなく、MIME タイプさえもありません)。 )。すべてのヘッダーをエミュレートしたとしても(少なくとも、私の理解の範囲内で)、直接リンクからのように仮想URLからビデオを開くようにchromeを取得できないようです。
Content-Type & Content-Length
ヘッダーを使用して権利を送信しようとしましたが、最初のリクエストにヘッダーがない場合やヘッダーに含まれてAccept-Ranges & Content-Range
いない場合でも、2 フェーズのリクエストをエミュレートしようとしました (最初の応答で 1 バイトのみを送信するか、ビデオ全体を送信することも試みました)。両方の応答で)。(これらの値がすべて「正しい」と言うときは、Fiddler でキャプチャした動作中の応答と同じであったことを意味します...)video/mp4
*/*
Accept
ブラウザがファイルをビデオとして扱うようになった原因を誰か説明できますか? 指定/省略が必要なヘッダーは何ですか? (もちろん省略しcontent-disposition: attachment
ますが…)