このメソッドを使用している最初のタイマー。 私はなぜそれが指定された戻り値を返さないのか分からない。誰も私のコードを修正するために私を助けることができるので、以下のステートメントでtrue / falseの戻り値を得ることができます:
$.post("php/username_check.php",{ username: uname, password: upass }, function(data){
if(data == 1) {
$("#result").html("Login successful!");
return true;
} else {
$("#result").html("<div style="color:red;border:1px solid red;padding:5px;">Username and password invalid.</div>");
return false;
}
});
回答:
回答№1は0指定したURLにデータをPOSTするためにjQueryを使用しています。渡された関数(引数として) $.post
コールバック関数です。
それはAJAXリクエストであるため、通常は非同期です(同期しない限り、非同期です)。したがって、javascriptは $.post
。それは次のステートメントに走り続けるでしょう。たとえば、次のようなコードがあるとします。
function() {
$.post(......../* your coding */);
console.log("XXXXXXXXX");
}
上記の機能は、 $.post
そして console.log
ほぼ同時に。後 console.log
関数が終了すると、関数は終了します。
応答は $.post
jQueryはコールバック関数を呼び出してロジックを進めます。
回答№2の場合は0
AJAXは非同期です
コールバック関数は、すぐに実行されますが、結果が戻ったときに将来のある時点で(おそらく)呼び出されます。これは、あなたがその関数、またはその関数によって呼び出される他の関数にあなたの "結果"ロジックを置くことができることを意味します...例えば:
function handleResult(success) {
if(success /* === 1*/) {
$("#result").html("Login successful!");
}
else {
$("#result").html("<div style="color:red;border:1px solid red;padding:5px;">Username and password invalid.</div>");
}
}
$.post("php/username_check.php", {username: uname, password: upass}, handleResult);
jQuery.post
ザ jQuery.post メソッドは、 jQuery.ajax メソッドを返す jqXHR オブジェクト。
postメソッドに提供されたコールバック関数から返された値は返されません。
jQuery 1.5以降、$ .ajax()メソッドはjqXHRオブジェクトを返します。 XMLHTTPRequestオブジェクトのスーパーセットです。詳細は、次を参照してください。 $ .ajaxエントリのjqXHRセクション
見る ここに jqXHRオブジェクトの詳細については、