无法使用维基百科的回复JSON

时间:2016-12-04 07:52:40

标签: javascript jquery json



$(document).ready(function () {
        $.getJSON({
            url:"https://en.wikipedia.org/w/api.php?action=query&format=json&list=search&origin=*&srsearch=gaby&srwhat=text&srprop=snippet&format=json",
            function (result) {
                $("#display").text(result.query.search[0].title);
            }
        });
    });

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
<p id="display"></p>
&#13;
&#13;
&#13;

以下是$.getJSON()&#39; s response JSON。我使用result.query.search[0].title来获取标题。为什么#display元素无法显示?

2 个答案:

答案 0 :(得分:4)

取出url:{} getJSON()方法。

$(document).ready(function() {
  $.getJSON("https://en.wikipedia.org/w/api.php?action=query&format=json&list=search&origin=*&srsearch=gaby&srwhat=text&srprop=snippet&format=json",
  function(result) {
      $("#display").text(result.query.search[0].title);
  });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
<p id="display"></p>

答案 1 :(得分:2)

您尚未正确构建通话。

$.getJSON({
    url:"https://en.wikipedia.org/w/api.php?action=query&format=json&list=search&origin=*&srsearch=gaby&srwhat=text&srprop=snippet&format=json",
    function (result) {
        $("#display").text(result.query.search[0].title);
    }
});

您似乎使用的$.ajax()语法与$.getJSON()不兼容。即使它是兼容的,你也会错过成功函数的正确属性名称。

(您的语法会创建一个带有&#39; url&#39;和&#39; function&#39;属性的对象。(我不确定该函数为什么会获取该名称。)此对象已通过到url参数中的$.getJSON() .jQuery将它转换为字符串&#34; [object Object]&#34;并将其用于url。这会产生404. $.getJSON()无声地失败,如果请求失败或响应无效。)

相反,请使用:

$.getJSON(
    "https://en.wikipedia.org/w/api.php?action=query&format=json&list=search&origin=*&srsearch=gaby&srwhat=text&srprop=snippet&format=json",
    function (result) {
        $("#display").text(result.query.search[0].title);
    }
);