这是一个AJAX请求,A表示异步,这意味着你的代码不会停止并等待响应,除非你这么说。 $.get只是$.ajax的包装。如果你想请求是同步的,你需要使用$.ajax,而不是像这样:
var checkemail = 0;
$.ajax({
async: true,
url: "bla.aspx",
data: {day:"friday"},
dataType: text,
success: function(data){
console.log(data);
checkmail = data;
}
});
console.log("checkemail: " + checkemail);
if (checkemail == '1') { /* do something */ }
或者你可以使用回调函数来检查数据。回调函数是您在success属性中定义的函数。这个函数在请求完成后被调用。所以,你可以这样做:
$.get("bla.aspx", {
day: "friday"
},
function(checkmail) {
console.log("checkemail: " + checkemail);
if (checkemail == '1') { /* do something */ }
}
);
如果/* do something */是很长的,你可以把它变成一个独立的功能,比把函数调用get请求如下:
var do_something = function(checkmail) {
console.log("checkemail: " + checkemail);
if (checkemail == '1') { /* do something */ }
}
$.get("bla.aspx", {
day: "friday"
},
do_something // note the missing `()`, it must be like this
);