ウェブサイトとIEに問題があります。ファイルがありますDocument.ashxクエリ文字列で渡されたパラメーターに応じてデータベースからドキュメントになります。
ファイルは次の場合に機能します。
次の場合は機能しません。
Windows Internet Explorer
MyHostNameからDocument.ashxをダウンロードできません。
このインターネットサイトを開くことができません。
要求されたサイトは利用できないか、見つかりません。
後でもう一度やり直してください。
誰がこれを引き起こすのか手がかりがありますか?当然、Firefoxでも問題なく動作します。
私のオフィスでは、IEで試してみようと思った人が何人かいましたが、全員が同じ問題を抱えています。Firefoxでも機能すると言います。
RymoがCache-Control: private
を設定したように、応答ヘッダーにPragma :no-cache
が含まれている場合は、Pragma: token
に変更する必要があります。
Davidがここで提供したKB記事( SSLを介したInternet Explorerファイルのダウンロードは、キャッシュ制御ヘッダーでは機能しません )に基づいて、発信ヘッダーをCache-Control: no-cache
からCache-Control: private
に変更しました。これにより、他のブラウザに影響を与えることなくIE8の問題が解決されたようです。 Cache-Control: no-store
も使用することに注意してください。
IE8は完全に無効化されたキャッシングを受け入れるようにできますが、ヘッダーの正確な順序について非常にうるさいです。したがって、private
(特定のキャッシュを許可し、セキュリティニーズに適合しない可能性があります)にフォールバックする代わりに、次を使用します。
Cache-Control: no-store, no-cache, must-revalidate
指定された場合、正確な順序で-最初のno-store
THEN no-cache
-IE8では、エラーなしでファイルをダウンロードできます。 Pragma
ヘッダーが設定されていないことも確認してください。
この問題はIE8およびおそらくそれ以前のバージョンで発生しますが、IE9 +では解決されています。 SSLを介したドキュメントのダウンロードに関連しています。
アプリケーションの問題を解決するには、次の2つのヘッダーをダウンロードに追加する必要がありました(PHPで記述されています)。
header("Cache-Control: private");
header("Pragma: cache");
私はIE 8のみに遭遇しました。ソリューションを追跡しているときに2つのソリューションに遭遇しました。そのうちの1つがこの問題を修正するはずです。
問題を引き起こすのはIEのコーディング方法であるため、クライアントマシンでの修正であることをお知らせするだけです。
修正: http://support.Microsoft.com/kb/81531http://support.Microsoft.com/kb/323308
何が大騒ぎですか?この問題は、即時のキャッシュ有効期限切れまたはキャッシュなしが原因です。
問題を修正するには、次を実行します。
Goto server system -> Run Inetmgr -> RightClick and properties on the folder(e.g images) -> httpHeaders ->
Now コンテンツの有効期限を有効にするのチェックを外すか、期限切れ後をチェックして1分間待ちます。
これはIIS 5。
IIS 6/7。
楽しいプログラミング!!
私は同じ問題を抱えていて、それを修正する上記のすべての方法を試してみてイライラしました。明らかに、クライアントマシンでソリューションを実行したくないので、ヘッダーから「Pragma」パラメータを削除するだけで、うまく機能し始めました。問題が解決しました。
asp.netを使用している場合。セットキャッシュでコードを削除する
以下にコメントしてください
Response.Clear();
Response.Buffer = true;
Response.Charset = "";
**//Response.Cache.SetCacheability(HttpCacheability.NoCache);**
Response.ContentType = contentType;
Response.AppendHeader("Content-Disposition", "attachment; filename=" + fileName);
Response.BinaryWrite(bytes);
Response.Flush();
Response.End();
dynamic create Iframe、srcをダウンロードページloactionに設定し、本文に追加します。
function downloadInIFrame(fileId) {
var url = "download.aspx?fileId=" + fileId;
var iframe = document.createElement("iframe");
iframe.src = url;
iframe.style.display = "none";
document.body.appendChild(iframe);
}
これらのコードは私にとってうまく機能します。
MVCコントローラーを使用してIE8と同じ問題が発生しました tagged with NoCache
。これにより、Response.Cache.SetNoStore
IEでのファイルのダウンロードを中断します。
解決するには、 リフレクションによるHttpキャッシュポリシーのリセット を使用します。
「対象をファイルに保存...」または「新しいタブで開く」を実行すると、正常に機能します。しかし、IE8ではまだエラーが発生します。私は同じ実装をしています... iframeを持つdiv(display:none)を作成し、それをbodyに追加し、srcをコンテンツタイプがapplication/binaryのフレームに設定するのと同じです。
www.Qiqqa.com のClickOnceデプロイメントにこの同じ問題が埋め込まれていました。私は、それがapplication/octet-stream
を取得したときにIEが行う "MIMEタイプスニッフィング"に関係していると思われます-ユーザーを悪意のあるものから保護すると思います。
とにかく、問題を解決するために、.deploy
ファイルのMIMEタイプをtext/plain
に変更しました-明らかに理想的ではありませんが、同時に、ユーザーがClickOnceの外部を参照するサーバー上の.deploy
ファイル。
問題が解決しました。