Получение данных JSON из API Википедии с помощью jQuery

Я перепробовал все комбинации, которые смог найти здесь и на сайте Wikimedia API, но, похоже, мне не удалось вернуть какие-либо данные. Это мой код,

$('#go').click(function () {
    var str = $("#input").val();
    var fullstr = 'https://en.wikipedia.org/w/api.php?format=json&action=query&list=search&srnamespace=0&srsearch=' + str + '&srprop=snippet&format=json&callback=json';
    $.getJSON(fullstr, function(data) {
      alert(data);
    });
  });

Я тестировал его до вызова getJSON, и, похоже, он работает, но, похоже, я ничего не получаю от вызова. (Последнее предупреждение() предназначено только для проверки любого возвращаемого объекта).

В чем проблема?

Спасибо!


person F. Moss    schedule 10.11.2017    source источник
comment
Если вы используете что-то вроде Chrome для отладки — проверили ли вы вкладку «Сеть» в отладчике, чтобы точно увидеть, что было отправлено и возвращено?   -  person Steve    schedule 10.11.2017
comment
@ F.Moss Я думаю, это из-за проблемы с заголовком из разных источников.   -  person Kalaiselvan    schedule 10.11.2017
comment
Спасибо, я посмотрю на эти вещи.   -  person F. Moss    schedule 17.11.2017


Ответы (2)


Это может быть полезно для вас, поскольку при создании URL-адреса вам нужно передать origin= *

$(document).ready(function(){              
     $("#searchWiki").click(function(){
          var q = document.getElementById("searchid").value;
          $.getJSON("https://en.wikipedia.org/w/api.php?action=query&format=json&gsrlimit=15&generator=search&origin=*&gsrsearch=" + q, function(data){
     console.log(data)
     });
   });
 });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
    <div id="search">                    
         <input id="searchid" class="input-lg" name="gsrsearch" type="text" placeholder="search Wiki" autocomplete="off"/>
         <button id="searchWiki" class="btn-lg btn-info">Search</button>                          
    </div>      

person Kalaiselvan    schedule 10.11.2017

Вы должны добавить в свой запрос параметр origin=*, чтобы предотвратить ошибку перекрестного происхождения. Что-то вроде этого:

https://en.wikipedia.org/w/api.php?action=query&list=search&srnamespace=0&srsearch=' + str + '&srprop=snippet&format=json&callback=json&origin=*
person Sorix    schedule 10.11.2017