0

クライアント コードで次のシーケンスを見ました。

$.ajax({
    url: "...",
    data: {},
    success: function() {
    // I don't care about the response
    }
});

top.location.href="http://...." 

ご覧のとおり、ブラウザは ajax リクエストを送信し、レスポンスは気にしません。リクエストを送信した後、ページはtop.location.hrefステートメントを使用して別の URL にリダイレクトされます。

私は JavaScript の初心者ですが、Ajax リクエストの送信が保証されているかどうかわかりません。

このセンド アンド フォーゲット アンド リダイレクトajax の動作を取得する別の方法はありますか?

編集

明確にするために、このajaxが長い操作を終了し、リダイレクト行を成功コールバックに入れるのを待ちたくありません。

4

2 に答える 2

2

メッセージが受信され、処理されたことを 100% 確実にしたい場合は、successハンドラーでリダイレクトを行う必要があります。

これにより、必要に応じてエラー処理を実行することもできます。たとえば、AJAX 要求を作成したが、何らかの理由で失敗した場合はどうなるでしょうか。リダイレクトするだけでは、ユーザーは問題があったことを決して知りません。ただし、アプリケーションのこの詳細によっては、これを気にする必要がない場合もあります。

于 2012-07-30T15:21:32.117 に答える
1

ajaxリクエストが成功した後に他のページにリダイレクトしたいだけなら、成功関数にtop.locationを入れないでください。または、ajaxが成功したかどうかに関係なくリダイレ​​クトしたいだけなら... top.locationに書き込みます完全なパラメーターの関数。

于 2012-07-30T15:22:08.153 に答える