これは「jQuery を使用してページを更新するにはどうすればよいですか?」と似ていますが、同じではありません。:
ユーザーからいくつかのものを収集し、呼び出しを介してサーバーに渡すモーダル フォームを表示し$.ajax()
ます。window.location
サーバーは、ブラウザーの新しいパスになるはずのパスを返信します。したがって、ajax 呼び出しは次のようになります。
$.ajax({
// stuff
success: function (destination) {
// other stuff
window.location = destination;
}),
// still more stuff
});
ブラウザが現在そのページにない場合など、destination
純粋なパスである限り、これは正常に機能します。ただし、パスが現在表示しているページであり、ターゲット -- も含まれている場合、私は負けます。ブラウザは、指定されたターゲットにページを再配置するだけで、ページの新しいビューのためにサーバーにアクセスしません。これが必要です(サーバーがajax呼び出し中にいくつかのことを行ったため)。/some_path
/some_path#some_target
それで、多分私は呼び出しのlocation.reload()
後に追加するだけですか?window.location
コードが返されるページでコードが実行されている場合、それはうまくいくと思います。しかし、別のページにいる場合、ブラウザが変更を完了する前にリロードが呼び出される競合状態に陥り、window.location
新しい宛先ではなく古いページがリロードされます。
ブラッフ。これを回避する方法はありますか?