jQuery 1.8 ajax调用返回null,尽管post响应有值

时间:2015-05-18 22:45:41

标签: javascript jquery ajax

我遇到了jQuery ajax调用的返回值问题。我可以调试整个服务器端,我知道一切正常,返回值正确计算。我可以查看FireBug中的NET选项卡,看看响应是:

{ “d”:假}

但是当我测试ajax调用的Success函数中的值时,msg为NULL。为什么呢?

这是ajax电话:

function GetStateCertifiable(areaID) {
    $.ajax({
        url: "../WebServices/AoP.asmx/GetStateCertifiable",
        data: '{"AreaID":"' + areaID + '"}',
        dataType: 'json',
        success: function (msg) {
            alert(msg);         // for debugging
            if (msg)
                $("#isCertified").slideDown("fast");
            else
                $("#isCertified").slideUp("fast");
        },
        error: function (msg) {
            alert("An error occured. \nStatus: " + result.status
                            + "\nStatus Text: " + result.statusText
                            + "\nError Result: " + result);
        },
        complete: function () {
        }
    });
};

其他类似结构的客户端调用工作正常。这是一个同域请求。

2 个答案:

答案 0 :(得分:0)

尝试将变量名称更改为msg以外的名称。我认为这可能是一个消息框或类似的东西。尝试

function GetStateCertifiable(areaID) {
    $.ajax({
        url: "../WebServices/AoP.asmx/GetStateCertifiable",
        data: '{"AreaID":"' + areaID + '"}',
        dataType: 'json',
        success: function (result) {
            alert(result);         // for debugging
            if (result)
                $("#isCertified").slideDown("fast");
            else
                $("#isCertified").slideUp("fast");
        },
        error: function (result) {
            alert("An error occured. \nStatus: " + result.status
                            + "\nStatus Text: " + result.statusText
                            + "\nError Result: " + result);
        },
        complete: function () {
        }
    });
};

答案 1 :(得分:-1)

事实证明问题是我的网络服务(../WebServices/AoP.asmx/GetStateCertifiable)返回了一个bool,并且从帖子回复中,我知道已经正确地发送回客户端。然而,Ajax并不喜欢这样。一旦我更改了Web服务以返回字符串“true”或“false”,一切正常。

jQuery ajax是否仅适用于字符串,还是我应该做些什么来准备msg对象以接收bool?