我有以下代码:
阿贾克斯:
function GetLoggedInUserName() {
var username = null;
$.ajax({
url: 'Login.aspx/GetLoggedInUserName',
type: 'POST',
contentType: 'application/json; charset=utf-8',
async: false,
dataType: "json",
data: '{ }',
success: function(Result) {
if (Result != "") {
var ClientResponse = JSON.parse(Result.d);
alert("res: " + ClientResponse.Success);
alert("data:" + ClientResponse.Data);
if (ClientResponse.Success) {
username = ClientResponse.Data;
}
else {
showDialog('indicator', {
message: ClientResponse.Message,
type: 'error'
}, false);
}
}
},
error: function(xhr, textStatus, errorThrown) {
showDialog('indicator', {
message: 'An error occured in GetLoggedInUserName',
type: 'error'
}, false);
}
});
return username;
}
利用:
var loggedInUser = GetLoggedInUserName();
alert(loggedInUser);
当我在 PC 上运行此代码时,一切正常。当我在 IPAD (safari/chrome) 上运行此代码时,我在警报中得到“null”,然后我在 ajax 调用中得到警报:
alert("res: " + ClientResponse.Success);
alert("data:" + ClientResponse.Data);
所以我认为 async: false 在 IPAD 上并不适用。这是真的吗?有没有办法在 IPAD 上使用同步 ajax 调用?