2012-04-23 3 views
3

ファイルのダウンロードを要求するためのアンカータグがあります。このようアンカータグを使用してファイルに要求されたときにブラウザがキャッシュを使用しないようにする

<a href="app/results?fileName=t12.txt&other-param=something" title="Click to download"> Download </a> 

ファイルは、非常に多くの場合、サーバー上で変更することができるので、私は、ブラウザがファイルをキャッシュしないことを確認します。

しかし、テスターは、リンクをクリックするとファイルをダウンロードするように見えますが、リンクを右クリックして[名前を付けて保存...]を選択すると、ブラウザは次のように選択するように見えます代わりにキャッシュされたファイルを使用してください。これはIE9でテストされました。

どのようにブラウザ(特にIE9)が常にどのような場合でも常にファイルをダウンロードできるようにするにはどうすればよいですか?

+2

クエリ文字列に乱数を追加できますか?それはキャッシングを妨げるはずです。 – JavaKungFu

+0

さて、それを試してみる...それについて考えていない!あなたはこれを答えとして加えることができます。ありがとう。 – Renato

+0

ああ、いいえ...申し訳ありません実際には、ページを更新しない限り、これはうまくいきません。ページを更新しなくても常に確実にしたいと思っていました。 – Renato

答えて

0

:HREFのクエリ部分に乱数を追加してみてください:このヘッダとレスポンスを受信した後、

http://en.wikipedia.org/wiki/List_of_HTTP_header_fields#Effects_of_selected_HTTP_header_fields

キャッシュなし、ブラウザはもうこのデータをキャッシュしません。

+0

問題は、問題のクライアント側の解決策を探していることを示唆しています。この場合、サーバーからの応答ヘッダーの設定はオプションではありません。私はJavaKungFuの答えは、質問に質問へのより良い応答だと思う。 – Hank

+1

答えがクライアント側に限定されるべきではないという提案はありません。実際に、何かがキャッシュ可能であるかどうかを判断する正しい場所は、クライアントではなくサーバー上にあります。 – Renato

5

私は答えとして追加します。 Cache-Control:私はレスポンスヘッダパラメータを設定することができますウィキペディアによると

:答えの1のための私自身のコメントを1として

?param=[random] 
+0

あなたはそうです。誰かがリンクをクリックするたびにJavaScript ...しかし、ちょうどタグがno-cache = trueのようなものになると考えました – Renato

+0

それは問題です...リクエストヘッダにno-cacheがありません....私はそれを強制することを望みました。 – Renato

関連する問題