对我的API的Ajax调用返回未定义

时间:2018-08-09 08:07:36

标签: javascript jquery json api

我创建了一个非常简单的rest API,并遵循另一篇文章中的示例:HERE 我对我的API进行了ajax调用,但是由于某种原因,我未定义为响应。我认为我在通话中做错了事。

这是电话:

$( document ).ready(function() {
    FetchData();
});
function FetchData() {
    $.ajax({
        async: false,
        type: "GET",
        url: "http://austinwjones.com/radio/gunsmoke/read.php",
        dataType: "json",
        success: function(data, textStatus, jqXHR) {
            $.each(data, function(i, object) {
                console.log(data.records.epi);
            });
        },
        error: function() {

        }
    });
}

直接转到我的API Here,您可以看到结果。我怀疑我的问题出在这部分吗?

 success: function(data, textStatus, jqXHR) {
            $.each(data, function(i, object) {
                console.log(data.records.epi);
            });

感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

这是另一种解决方案,它带有烘烤的Promise,简单的jQuery / JSON解决方案。

function getJSON() {
  return new Promise((resolve, reject) => {
    jQuery
    .getJSON('http://austinwjones.com/radio/gunsmoke/read.php')
    .then((data) => {
      jQuery.each(data.records, (i, record) => {
        console.log(record);
        return resolve(record);
      })
    });
  });
}

getJSON()
.then((records) => {
  console.log(records);
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

这样,一旦获取所有内容,便可以获取并显示。

答案 1 :(得分:0)

您应该将其更改为:

for (var i = 0; i < data.records.length; i++) {
  console.log( data.records[i].epi );
}

因为记录是一个数组。