API调用控制台日志返回空数组,但在邮递员POST中工作正常

时间:2019-03-16 10:47:14

标签: javascript arrays ajax api postman

我有一个调用(POST)的API,该API返回的数据如下:

"DATA": [
    {
        "type": "4",
        "title": "Promo",
        "cards": [
            {
                "image1": "http://url/image.jpg",
                "status": "0"
            },
        ]
    }]

Postman result Image

问题是,当我尝试通过console.log访问它时,它返回空数组,如下所示:

Array[]

我的代码:

$.ajax({
    url: "https://url/to/API/",
    type: "POST",
    data: {
        USERID: userid,
        TOKEN: token,
        APP_TYPE: appType
    },

    success: function(response){   
        // Promo Cards
        var promo = response.DATA[3].cards;

        console.log(promo);
    },
}); 

注意:我要访问的数据是数组中的第四个数据,这就是为什么我使用response.DATA[3]

我在哪里做错了?

2 个答案:

答案 0 :(得分:0)

您能否尝试下面的代码,让我知道它的运行方式。

$.ajax({
 url: "https://url/to/API/",
 type: "POST",
 dataType:"JSON",
 data: {
     USERID: userid,
     TOKEN: token,
     APP_TYPE: appType
 },

 success: function(response){   
     // Promo Cards
     var r = JSON.parse(response);
     console.log(r.DATA[3].cards);
 },
}); 

答案 1 :(得分:0)

尝试从以下位置重构您的jQuery调用

[..]
success: function(response){   
        // Promo Cards
        var promo = response.DATA[3].cards;

        console.log(promo);
    },

complete: function(xmlHttpRequest){

  // raw contains your data structure
  let raw = xmlHttpRequest.responseJSON;

  // cards will contain the information you're looking for
  let cards = raw.DATA[3]cards;

  console.log('cards:', cards);
  console.log('the whole data:' raw), 
},

享受。