[解決済み] jQuery Ajax呼び出し後のリダイレクトリクエストを管理する方法
2022-03-20 21:48:38
質問
私は
$.post()
を使用してサーブレットを呼び出し、その結果の HTML フラグメントで
div
要素で構成されています。しかし、セッションがタイムアウトした場合、サーバーはユーザーをログインページに送るためのリダイレクトディレクティブを送信します。この場合、jQueryはログインページの
div
要素の中身をログインページのコンテンツに置き換えるという、実に珍しい光景をユーザーの目に焼き付けることになる。
jQuery 1.2.6でAjax呼び出しからのリダイレクトディレクティブを管理するにはどうすればよいですか?
どのように解決するのですか?
最終的に実装された解決策は、Ajax呼び出しのコールバック関数にラッパーを使用し、このラッパーで返されたHTMLチャンクに特定の要素が存在するかどうかをチェックすることでした。もしその要素が見つかったら、ラッパーはリダイレクトを実行します。見つからない場合、ラッパーは実際のコールバック関数に呼び出しを転送します。
例えば、私たちのラッパー関数は次のようなものでした。
function cbWrapper(data, funct){
if($("#myForm", data).length > 0)
top.location.href="login.htm";//redirection
else
funct(data);
}
そして、Ajaxを呼び出すときには、次のようなものを使いました。
$.post("myAjaxHandler",
{
param1: foo,
param2: bar
},
function(data){
cbWrapper(data, myActualCB);
},
"html"
);
Ajaxの呼び出しは常にDIV要素内のHTMLを返し、それを使ってページの一部を置き換えるので、これは私たちにとって有効でした。また、ログイン・ページにリダイレクトするだけでよかったのです。
関連
-
JavaScriptの関数この指摘の問題を説明
-
vueにおけるfilterの適用シーンについて解説します。
-
Vueの一般的な組み込みディレクティブの説明
-
[解決済み] jQueryで要素が非表示になっているかどうかを確認するには?
-
[解決済み] どのラジオボタンが選択されているかをjQueryで知るにはどうしたらよいですか?
-
[解決済み] jQueryでページを更新するにはどうすればよいですか?
-
[解決済み] jQueryを使ったAjaxリクエストの中断
-
[解決済み] どうすればjQueryに非同期ではなく、同期のAjaxリクエストを実行させることができますか?
-
[解決済み】別のウェブページにリダイレクトするにはどうすればいいですか?
-
[解決済み】jQueryでチェックボックスがチェックされているかどうかを確認するにはどうすればよいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
fetch ネットワークリクエストラッパーの説明例
-
jsを使った簡単な照明スイッチのコード
-
Vueはランニングライト形式のテキストを水平方向にスクロールする機能を実装している
-
vue3.0プロジェクトのアーキテクチャを構築するための便利なツール
-
vueの補間表現とv-textディレクティブの違いについて
-
Vueの一般的な組み込みディレクティブの説明
-
[解決済み】"フォームが接続されていないため、フォームの送信がキャンセルされました "というエラーの取得について
-
[解決済み】React - TypeError: 未定義のプロパティ 'props' を読み取ることができない。
-
[解決済み】ExpressJS - throw er Unhandled errorイベント
-
[解決済み】JavaScriptでインラインIF文の書き方は?