HTTP POST使用jQuery获取值

时间:2014-08-22 16:13:57

标签: jquery http-post

我使用下面的代码来获取值,但它无效。 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。

2 个答案:

答案 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);
        }
    });
}