次のコードがあります。
AJAX:
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 呼び出しを使用する方法はありますか?