2016-01-03 2 views
2

Я уже знаю, что этот метод работает для других форматированных данных JSON, но не для вывода JSON API википедии, как указано здесь. Любая помощь будет большим:

$.getJSON('https://en.wikipedia.org/w/api.php?format=json&action=query&generator=search&gsrsearch=starwars', function(data) { 
    $("p").html(JSON.stringify(data)); 
}); 
+1

вы получаете какие-либо ошибки в инструменты для разработчиков браузеров консоли? (Я предполагаю, что некоторая ошибка в отношении CORS будет hsow вверх) –

+0

Спасибо Jaromanda и хороший звонок. Это ошибка в моих инструментах разработчика Chrome: «XMLHttpRequest не может загрузить https://en.wikipedia.org/w/api.php?format=json&action=query&generator=search&gsrsearch=starwars. В запрошенном ресурсе нет заголовка «Access-Control-Allow-Origin». Происхождение http: // localhost: 8080 ', следовательно, не допускается. " –

ответ

4

Добавить callback

$.getJSON('https://en.wikipedia.org/w/api.php?format=json&action=query&generator=search&gsrsearch=starwars&callback=?', function(data) { 
 
    console.log(data); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

+0

Спасибо Адаму. Этот обратный вызов работает. –

+0

Я знаю, что это старый вопрос, но почему это работает? –

0

Jaromanda X является правильным, вам нужно использовать callback функцию, чтобы разобраться в этом. https://www.mediawiki.org/wiki/API:Cross-site_requests/en

+0

Спасибо Эдуардо за страницу Википедии. Функция обратного вызова действительно разобрала его. –

1

Другой способ заключается в $.ajax с JSONP DATATYPE:

jQuery(document).ready(function($) { 
 
    $.ajax({ 
 
    url: "https://en.wikipedia.org/w/api.php?format=json&action=query&generator=search&gsrsearch=starwars", 
 
    dataType: "jsonp", 
 
    success: function(data) { 
 
     $("pre").html(JSON.stringify(data, null, 3)); 
 
    } 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<pre></pre>

+0

Насколько вы относитесь к @CodeiSir? У вас обоих одна и та же биография. –

+0

@AdamAzad Я не, это автогенерированная биография от SO ^^ – Shanoor

+0

Возможно, вам захочется работать над вашим разделом. :) –

Смежные вопросы