アクションを実行するために Ajax POST をディスパッチするリンクがあります。ユーザーがまだサインインしていない場合、アクション メソッドはログイン ページへの 302 リダイレクトを返します。これが発生した場合、ログイン フォームをライトボックスに表示できるように、リダイレクトをキャッチしたいと考えています。
ただし、jQuery は、制御を返したり、コールバック関数を呼び出したりせずに、リダイレクトに従っているようです。以下のコードでは、302 リダイレクトのアラートが呼び出されることはなく、dataFiler 関数が呼び出されるまでに、データはログイン ページのコンテンツになります。
ページが 302 リダイレクトを送信し、別のアクションに分岐したことを確認するにはどうすればよいですか?
$.ajax(url,
{
data: postArguments,
type : "POST",
success: function (data) { alert(' success function'); },
statusCode:
{
302: function () { alert(' received redirect 302'); },
301: function () { alert(' received redirect 301'); }
},
dataFilter: function (data, type) { alert('got data ' + data); return data; }
});