错误Jquery。$。get()请求

时间:2016-04-28 02:26:06

标签: javascript jquery

当我访问此网址时:http://jservice.io/api/random输出如下:

[{
    "id": 67917,
    "answer": "agua",
    "question": "After some fierce flamencoing, you might hear cries of this, Spanish for \"water\"",
    "value": 800,
    "airdate": "2004-11-18T12:00:00.000Z",
    "created_at": "2014-02-11T23:29:50.743Z",
    "updated_at": "2014-02-11T23:29:50.743Z",
    "category_id": 1145,
    "game_id": null,
    "invalid_count": null,
    "category": {
        "id": 1145,
        "title": "foreign words \u0026 phrases",
        "created_at": "2014-02-11T22:52:16.443Z",
        "updated_at": "2014-02-11T22:52:16.443Z",
        "clues_count": 115
    }
}]

我正在尝试使用$.get()来获取请求数据:

<html>
<head>
    <title>Quiz</title>
    <meta charset="utf-8">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
</head>
<body>

</body>
<script>
    $.get("http://jservice.io/api/random", function(data, status){
        alert("Data: " + data.title + "\nStatus: " + status);
    });
</script>
</html>

但输出是这样的:

Data: undefined
Status: success

3 个答案:

答案 0 :(得分:3)

没有data.title

  1. data是一个数组。
  2. title嵌套在数组元素category下。
  3. 对于此特定的响应,您需要(大致):

    data[0].category.title
    

    但是,如果您可以获得多个结果,则需要确定您实际要做的事情。

答案 1 :(得分:3)

返回是一个数组。所以你必须使用 data[0]。此外,title位于category对象内。 试试这个。

&#13;
&#13;
    $.get("http://jservice.io/api/random", function(data, status){
        alert("Data: " + data[0].category.title + "\nStatus: " + status);
    });
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
&#13;
&#13;
&#13;

答案 2 :(得分:1)

也可以通过访问url作为json对象来实现结果。共享以下代码以供参考。

<html>
<head>
    <title>Quiz</title>
    <meta charset="utf-8">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
</head>
<body>
</body>
<script>
(function() {
  var srcURL = "http://jservice.io/api/random";
  $.getJSON( srcURL, {    
    format: "json"
  })
  .done(function( data ) {
    $.each( data, function( i, item ) {             
      console.log(item.category.title);
    });
  });
})();
</script>
</html>