【问题标题】:Ajax call to my API returns undefined [closed]对我的 API 的 Ajax 调用返回未定义 [关闭]
【发布时间】:2018-08-09 08:07:36
【问题描述】:

我创建了一个非常简单的 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);
            });

感谢任何帮助。

【问题讨论】:

  • 它的data.records[0].epi
  • $.each(data, function(i, obj) { console.log(obj.records.epi); });
  • 对以上两个cmets进行扩展;响应中的records是一个数组,所以需要通过索引访问,或者循环访问
  • @AustinJones 你最好删除这个问题,因为这是一个简单的语法错误,不太可能帮助任何未来的访问者
  • @AustinJones 是最好的。继续删除问题,这将是我们的小秘密

标签: javascript jquery json api


【解决方案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>

这样,您可以获取所有内容并在获取后显示它。

【讨论】:

  • 太棒了,我从来没有使用过 Promise,我得进一步研究一下。
【解决方案2】:

您应该将其更改为:

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

因为记录是一个数组。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-24
    相关资源
    最近更新 更多