访问Ajax响应数据

时间:2012-03-28 16:05:24

标签: javascript jquery json

我的代码效果很好:

{"livre":"empty_name"}

    $.ajax({
        url: "sent.php",
        type: "post",
        dataType: "json",
        data: formdata,
        success: function (data) {
            switch (data.livre) {
                  case 'empty_name':

                  break;
        }
    });

但是当我尝试这个代码(我需要id)时,案例“空名”不起作用。选择的选项将是默认情况:

{"id":"","livre":"empty_name"}

    $.ajax({
        url: "sent.php",
        type: "post",
        dataType: "json",
        data: formdata,
        success: function (id, data) {
            switch (data.livre) {
                 case 'empty_name':

                 break;
        }
    });

为什么呢?怎么解决?感谢

2 个答案:

答案 0 :(得分:3)

如果我理解正确的对象是JSON响应,我想你想要这个......

{"id":"","livre":"empty_name"}

$.ajax({
    url: "sent.php",
    type: "post",
    dataType: "json",
    data: formdata,
    success: function (data) {
        var jsonId = data.id;
    }
});

data回调的success参数包含您的响应(在本例中为JSON数据)。您可以在那里访问JSON内容。

答案 1 :(得分:1)

您只需要了解数据的返回方式。在这种情况下,data是包含所有字段的对象。您的成功回调将继续看起来像success: function(data)您需要更改的代码位于方法块本身。

$.ajax({
    url: "sent.php",
    type: "post",
    dataType: "json",
    data: formdata,
    success: function (data) {
        var id = data.id; //ID lives in data.
        switch (data.livre) {
    }
});

由于您重新定义了该功能,因此交换机将失败,因为在livre对象中,id对象中的data和<{1}}对象中的不是