ajax中的函数是未定义的

时间:2017-04-17 09:36:35

标签: javascript ajax

所以我知道我的问题在于异步,但首先我不明白为什么。我在线尝试了一些代码示例仍未定义。

我的理解是,一旦ajax检索到数据,就会执行done中的函数。然而,谷歌搜索告诉我,在检索数据之前正在执行函数,导致函数不传递变量,从而导致未定义。

jQuery.ajax({
  "url": 'https://d.apicloud.com/mcm/api/card?filter={"where":{},"order":"hot;DESC","skip":0,"limit":20}',
  "cache": false,
  "headers": {
    "X-APICloud-AppId": "A694530933",
    "X-APICloud-AppKey": appKey
  },
  "type": "GET"
}).done(function(data, status, header) {
  //success body
  for (var i = 0; i < data.length; i++) {
    var listliked= "htmlcode"+data[i].id;
    var list20 = "htmlcode"+data[i].user;
    db.selectSql({
      name: 'dm',
      sql: 'SELECT 1 FROM fav WHERE fav.id ="' + data[i].id + '";',
    }, function(ret, err) {
      if (ret.status) {
        if (ret.data[0] != null) {
          $api.append(outputall, listliked);
        } else {
          $api.append(outputall, list20);
        }
      } else {
        alert(JSON.stringify(err));
      }
    });
  }
}).fail(function(header, status, errorThrown) {
  //fail body
})

0 个答案:

没有答案