FCC 维基百科查看器未接收数据

FCC wikipedia viewer not receiving data

我在从 mediawiki 获取任何响应数据时遇到了一些严重的问题 api。

我正在尝试进行 freecodecamp 维基百科查看器挑战,我正在此处进行编码:

https://codepen.io/dceaser334/pen/zpQXOJ

到目前为止,我所做的只是获取数据并使用以下请求将其打印到控制台:

$('.search-button').on('click', function() {

  var searchInput = $('.search-input').val();

  $.getJSON('https://en.wikipedia.org/w/api.php?action=query&list=search&srsearch=' + searchInput + '&format=json&callback=?', function(data) {

  console.log(data);

  });
});

到目前为止,我所做的只是获取数据并使用该请求将其打印到控制台。

我在 firefox 中遇到这个错误:

Loading failed for the with source “https://en.wikipedia.org/w/api.php?action=query&list=search&srsearch=jordan&format=json&callback=jQuery32105036538970753343_1518470620925&_=1518470620926”. index.html:1

控制台未加载任何内容,请求似乎已被阻止。

我试过使用 origin=* 也没什么区别。

我有点迷茫,因为这个项目有类似的 GET 请求代码并且工作完美:

https://codepen.io/luckyguy73/pen/GqPzZO?editors=1010

$("#searchWiki").click(function(){
    var q = document.getElementById("searchid").value;
        $('#results').html('');                
                $.getJSON("https://en.wikipedia.org/w/api.php?action=query&format=json&gsrlimit=15&generator=search&origin=*&gsrsearch=" + q, function(data){
                    $('#results').append('<h2>Top 15 Wiki Search Results for "' + q + '"</h2>');
                    $.each(data.query.pages, function (i) {
                        $('#results').append("<p><a href='https://en.wikipedia.org/?curid=" + data.query.pages[i].pageid + 
                            "' target='_blank'>" + data.query.pages[i].title + "</a></p>");
                    });

                });
            });

关于我在这里做错了什么有什么想法吗?

谢谢

我是这样做的。也许你会通过分析我的代码得到启发?

( function ( $ ) {
  "use strict";

  $(document).ready(function(){

    function loadData() {
        $(".information").text(""); // Reset data before new search.
        $(function whiteFirst() {
            const query = $(".wiki_query").val();
            const myFirstWikiUrl = "https://en.wikipedia.org/w/api.php?action=opensearch&search=";
            const mySecondWikiUrl = "&format=json&callback=wikiCallback";
            const wikiUrl = myFirstWikiUrl + query + mySecondWikiUrl;
            // MY WIKIPEDIA AJAX GOES HERE - TOP
            const wikiRequestTimeout = setTimeout(function() {
                $(".small-information").html("An error occurred! Application couldn't get Wikipedia resources!");
            }, 5000); // This is 5 seconds!
            $.ajax({
                url: wikiUrl,
                dataType: "jsonp",
                type: "GET",
            }).done(function(result) {

                const itemsOne = [];
                const itemsTwo = [];
                const itemsThree = [];

                $(result[1]).each(function(index, value) {
                    itemsOne.push(value);
                });

                $(result[2]).each(function(index, value) {
                    itemsTwo.push(value);
                });

                $(result[3]).each(function(index, value) {
                    itemsThree.push(value);
                });

                $(".information").hide();
                $(".results").hide();

                for (let i = 0; i < itemsOne.length; i++) {
                    $(".information").append("<a class='title' href=" + itemsThree[i] + " target='_blank'><div class='result'><p class='title' id='boldTitle'>" + itemsOne[i] + "</p><p>" + itemsTwo[i] + "</p></div></a>");
                }

                if (itemsOne.length === 0) {
                  $(".information").html("Nothing found!");
                }

                $(".results").show();
                $("body,html").animate({
                    'scrollTop': $(".results").offset().top
                }, 2000);    

                $(".information").fadeIn("slow");
                clearTimeout(wikiRequestTimeout); // This will prevent timeout from happening!

            });
            // MY WIKIPEDIA AJAX GOES HERE - BOTTOM
        });
        return false;
    };

    $(".whiteButton").click(loadData);
    $(".results").hide();

    $(function() {
      const offset = -50; // Optional offset
      $(".back").click(function() {
        $("html, body").animate({
            scrollTop: $(".cover").offset().top + offset
        }, 750);
      });
    });

  });

} ( jQuery ) );