支払いゲートウェイと統合する DurandalJS v1.2 で構築されたシングル ページ アプリケーション (SPA) があります。SPA は、支払いゲートウェイのページに通常のフォーム POST を実行して、支払いゲートウェイのページに移動します。
ユーザーが支払いゲートウェイのページを完了すると、支払いゲートウェイはフォーム POST を SPA に返します。
これは POST であるため、送信されるさまざまなフォーム パラメーターの require.js モジュール定義をレンダリングすることにより、ASP.NET MVC でサーバー側で処理します。このモジュールは、結果を処理する必要があるビュー モデルで使用されます。
これはすべて正常に機能しており、結果を処理してから、同じ SPA ページにとどまります。SPA はリダイレクトを行わないため、これは Post-Redirect-Get の一般的な Web パターンとは異なります。
現在の問題は、ブラウザーの更新ボタンを押すと、ブラウザーの再試行ポスト確認ダイアログが表示されることです (これは望ましくありません)。
JavaScript を使用してこれを回避する方法はありますか、それとも PRG パターンが唯一の方法ですか?
注: window.location、document.location の変更、および history.replaceState の使用はすべて機能しないようです (少なくとも Chrome では)。