我使用下面的代码来获取值,但它无效。 post方法返回正确的值,但我想将值赋给变量,但它不起作用。我该如何解决?
$(document).ready(function () {
var sessionID = GetSessionIDFromDB();
alert(sessionID);
});
function GetSessionIDFromDB() {
$.ajax({
type: "POST",
url: myurl + "GetSessionID",
data: '{}',
contentType: "application/json",
dataType: "json",
success: function (data) {
var returnValue = $.parseJSON(data.d);
return returnValue;
}
});
}
GetSessionIDFromDB中的returnValue
是我所期望的,但是当分配给变量时,它是null。
答案 0 :(得分:0)
除非你在data.d中专门返回了一个JSON字符串,否则data.d可能已经是一个JavaScript对象,在这种情况下你可以使用:
var returnValue = data.d;
return returnValue;
或者简单地说:
return data.d;
答案 1 :(得分:0)
警报失败的原因是您的GetSessionIDFromDB
函数未返回任何值。它只调用jQuery.ajax并注册包含return returnValue
语句的匿名函数作为回调。
正如我在对您的问题的评论中所提到的,请详细了解JavaScript回调的概念 - this是一篇很好的文章,我可以快速谷歌。
要使代码正常工作,请尝试以下操作:
$(document).ready(function () {
GetSessionIDFromDB();
});
function GetSessionIDFromDB() {
$.ajax({
type: "POST",
url: myurl + "GetSessionID",
data: '{}',
contentType: "application/json",
dataType: "json",
success: function (data) {
var returnValue = $.parseJSON(data.d);
var sessionID = returnValue;
alert(sessionID);
}
});
}