LoginSignup
0
0

More than 5 years have passed since last update.

IEは自画面へのPOSTでダウンロード処理させると履歴が消える

Last updated at Posted at 2018-05-18

履歴が消える!

IEにおいて、表示中のURLと同じURLへのpostでダウンロード処理をさせると、その画面の履歴が無くなります!
(ブラウザの戻るボタンで戻った時に、さっき見ていたはずのページが表示されません)

どういうこと?

ページ1→ページ2→ページ3とページ移動させるようなリンクが貼ってあるとしましょう。ページ2にはダウンロードボタンがあります。ダウンロード処理はページ2と同じURLで行います。

ページ1からページ2へ移動し、そこでダウンロードボタンを押してファイルをダウンロードしてから、ページ3へ移動します。

ブラウザの戻るボタンを押すと、ページ2に戻るはずがいきなりページ1に戻ってしまいます。

解決方法

ダウンロード処理を表示中のURLと違うURLにしましょう。末尾に「?」を付けるだけでもOK。

以下はColdFusionの例ですが、post先がaction="dltest2.cfm"と自分のURLになっている箇所をaction="dltest2.cfm?download"などダミーのパラメータを付加してやります。
本当はダウンロード処理を別モジュールにするべきなんでしょうけど、既に作ってしまって修正が面倒なときは参考にしてください。

dltest2.cfm
<CFIF isDefined("form.btnSubmit")>
    <CFHEADER name="Content-Disposition" value="attachment; filename=testfile.txt">
    <CFCONTENT type="text/comma-separated-values" file="e:\testfile.txt" deleteFile="no">
</CFIF>

<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <title>2番目のページ</title>
</head>
<body>
    <h3>2番目のページ</h3>
    <a href="dltest1.cfm">前へ</a> <a href="dltest3.cfm">次へ</a>
    <form method="post" action="dltest2.cfm">
        <input type="submit" name="btnSubmit" value="download">
    </form>
</body>
</html>
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0