请大家帮我看一下这个同步ajax请求是否有问题?
本帖最后由 isyuezhi 于 2012-11-15 08:36:05 编辑 请个位大神帮我看看这个同步请求的ajax是否有问题?
我的目的是想使用同步ajax(貌似只有同步的ajax才可以把success方法中的信息传给全局变量)获取到后台的一个变量,现在后台返回的是"isyes"字符串,并且为了测试同步请求,我将线程停了三秒钟,现在的情况如下所述:
本来我是打算在success的方法中获取到"isyes"这个变量,并且将result赋值为true,并把true值返回validatePassword方法,并将result的值返回出去。
但是我的电脑上实际的运行情况是当通过ajax到后台取数据的时候,正在取的过程中,到数第二行的alert方法已经弹出了,值为underfind,在ie9,chrome,ff中都是如此。
请问我写的这代码有问题么?错在哪?
//验证用户是否已经输入了密码进行了验证
function validatePassword() {
var result;
try {
$.ajax({
type: "POST",
url: "default.aspx",
data: "type=password",
asyc: false,
success: function (msg) {
if (msg.toLowerCase() == "isno") {
result = false;
alert("对不起,你还没有进行身份验证!");
} else {
result = true;
}
}
});
} catch (err) {
result = false;
alert("对不起,验证身份信息失败!");
}
alert(result);
return result;
}
System.Threading.Thread.Sleep(3000);
Response.Write(UserInfo.isyes.ToString());
Response.End();
//验证用户是否已经输入了密码进行了验证
function validatePassword() {
var result;
try {
$.ajax({
type: "POST",
url: "default.aspx",
data: "type=password",
//asyc: false,
async: false,///////你写错单词了,少了个n
success: function (msg) {
if (msg.toLowerCase() == "isno") {
result = false;
alert("对不起,你还没有进行身份验证!");
} else {
result = true;
}
}
});
} catch (err) {
result = false;
alert("对不起,验证身份信息失败!");
}
alert(result);
return result;
}