[解決済み] jQuery が Ajax 呼び出しの終了を待って戻るようにするにはどうすればよいですか?
2022-02-06 01:54:25
質問
サーバーサイドの関数で、ログインを要求するものがあります。ユーザーがログインしている場合、この関数は成功時に1を返します。そうでない場合、この関数はログインページを返します。
AjaxとjQueryを使ってこの関数を呼び出したいのです。私が行うのは、通常のリンクでリクエストを送信し、そのリンクにクリック機能を適用することです。ユーザーがログインしていない場合、または関数が失敗した場合、私はAjaxコールがtrueを返し、hrefがトリガーされるようにしたいと思います。
しかし、以下のコードを使用すると、Ajaxの呼び出しが行われる前に関数が終了してしまいます。
どうすればユーザーをログインページに優雅にリダイレクトできますか?
$(".my_link").click(
function(){
$.ajax({
url: $(this).attr('href'),
type: 'GET',
cache: false,
timeout: 30000,
error: function(){
return true;
},
success: function(msg){
if (parseFloat(msg)){
return false;
} else {
return true;
}
}
});
});
解決方法は?
が必要ない場合は
$.ajax()
関数をすぐに返すようにするには
async
オプションを
false
:
$(".my_link").click(
function(){
$.ajax({
url: $(this).attr('href'),
type: 'GET',
async: false,
cache: false,
timeout: 30000,
fail: function(){
return true;
},
done: function(msg){
if (parseFloat(msg)){
return false;
} else {
return true;
}
}
});
});
しかし、これではAJAXの趣旨に反してしまうので注意したい。また、レスポンスの処理は
fail
と
done
関数を使用します。これらの関数は、サーバーからレスポンスを受信したときにのみ呼び出されます。
関連
-
[解決済み】BootstrapがUncaught Errorを投げる。BootstrapのJavaScriptはjQueryを必要とする【解決済み
-
[解決済み】 .autocomplete is not a function Error
-
[解決済み] Uncaught TypeError: 未定義のプロパティ 'ajax' を読み取ることができません。
-
[解決済み] jQuery Mobileのボタンを無効にする
-
[解決済み] jQuery Ajax呼び出し後のリダイレクトリクエストを管理する方法
-
[解決済み] jQueryを使用してハイパーリンクのhref属性を変更する方法
-
[解決済み] どうすればjQueryに非同期ではなく、同期のAjaxリクエストを実行させることができますか?
-
[解決済み] jQuery の Ajax リクエストがすべて終了するまで待ちますか?
-
[解決済み] jQuery に何かを実行する前にすべての画像の読み込みを待つように指示する公式な方法
-
[解決済み] jQueryを使って「Please Wait, Loading...」というアニメーションを作成するにはどうすればよいですか?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Ajaxクロスオリジンリクエストがブロックされました。同一生成元ポリシーがリモートリソースの読み取りを不許可にする
-
[解決済み] jQueryを使って入力が空かどうかをチェックする
-
[解決済み] Javascriptでの改行の分割方法
-
[解決済み] Jquery.comのサイトのソースファイルはどこにあるのでしょうか?ダウンロードのリンクがないのですが
-
[解決済み] jQuery - 小数点以下2桁に丸め、その数値で計算する。
-
[解決済み] BootstrapがUncaught Errorを投げる:BootstrapのJavaScriptはjQueryを必要とする【終了】。
-
[解決済み] jQuery slidetoggleが動作しない?[クローズド]
-
[解決済み] jQueryを使って下までスクロールさせる
-
[解決済み] jqueryでアンカークリックをシミュレートするにはどうしたらいいですか?
-
[解決済み] jQueryセレクタの直下型(>)と子孫型の違いは何ですか?