jQuery Ajax 返回值
阿新 • • 發佈:2019-02-10
諸所周知的,Ajax返回值是在匿名函式裡處理的,且因jQuery 中$.post,$.get預設是非同步處理,因此導致無法獲取返回值問題,接收到的返回值往往是undefined,一般比較有效的處理方法是設定全域性變數接收返回值。
時間關係,草草一例,以示用法:
function checkPwd(username, pwd) {
if (!pwd) {
alert("密碼不能為空");
return false;
}
var result; // 定義變數接收返回值
$.ajax({
url: "/home/login/checkPwd" ,
async: false,//改為同步方式
type: "POST",
cache: false,
data: {username: username, passwd: pwd},
dataType: "json",
success: function (data) {
result = data; // 接收返回值
}
});
if (result.status == 'error') {
alert(result.msg);
return false; // 返回給呼叫函式
}
}
/**
* 驗證表單
* @param form
* @returns {boolean}
*/
function login(form) {
with (form) {
// 上面程式碼在ajax之外設返回值false,這裡才可以拿到,否則是undefined
if ( checkPwd(user.value, pwd.value)== false ) {
return false;
}
}
}