2

次のシナリオがあります。

  • ユーザーが HTML フォームに入力する
  • ユーザーが送信ボタンを押す
  • 思わぬ悪いことが起こる
  • サーバーは、再試行ボタンのあるエラー ページを取得します。このページには元のフォームがありません。ユーザーが再試行ボタンをクリックしたときに、最後の投稿データを再送信してほしい

それが可能かどうかさえわかりません。retryボタン でこれを試しています:window.location.reload(true);

結果は次のとおりです。

  • firefoxでは完璧に動作します。データを再送信し、結果の HTML をユーザーに表示します。
  • Google Chrome では、データを再投稿しません。同じ URL で GET を使用するようなものです。確認するために Fiddler を調べます。
  • IE 9 はデータを再送信しますが、代わりに空白の画面が表示されます。リロードすると、適切なページが表示されます。

それらのすべてが Firefox として動作することを望みます。問題は、このエラー ページに元のフォームがないことにあると思います。

それらすべてを適切に動作させるために JavaScript でできることはありますか?

4

1 に答える 1

3

再試行フォームに投稿データを含める必要があります。投稿データを で<form>囲み、フォームを再送信します。

形:

<form id="retryform" name="retryform" action="postfile.html" method="post">
    <!-- post data -->
</form>

JS:

document.getElementById('retryform').submit();
// or
document.forms["retryform"].submit();
// or
document.retryform.submit();
于 2012-12-20T12:55:23.853 に答える