/ / $ .POSTメソッドの変数代入 - jquery

$ .POSTメソッドの変数代入 - jquery

このメソッドを使用している最初のタイマー。 私はなぜそれが指定された戻り値を返さないのか分からない。誰も私のコードを修正するために私を助けることができるので、以下のステートメントで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 関数が終了すると、関数は終了します。

応答は $.postjQueryはコールバック関数を呼び出してロジックを進めます。


回答№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オブジェクトの詳細については、