Twitter search api с ошибкой jquery

Мне нужно запросить поиск twitter с помощью jquery с помощью twitter api. После чтения документации я пишу этот код:

  $.getJSON("http://search.twitter.com/search.json?callback=myFunction&q=stackoverflow");

   function myFunction(r) {
       console.log(r);
    }

search.json Не удалось загрузить ресурs > Когда страница выполнена, Google Chrome показывает эту ошибку на консоли:

XMLHttpRequest не может загрузить http://search.twitter.com/search.json?callback=myFunction&q=stackoverflow. Происхождение http://localhost/twitter не разрешено Access-Control-Allow-Origin. search.json Не удалось загрузить ресурс

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

Ответы

Ответ 1

Вам нужно написать немного по-другому, например:

$.getJSON("http://search.twitter.com/search.json?callback=?&q=stackoverflow", 
  function (r) {
    console.log(r);
});

Чтобы запустить JSONP, он явно ищет callback=?, который не находится в вашей именованной функциональной версии. Чтобы использовать обратный вызов с именем, вам лучше перейти к $.ajax() полной версии:

$.ajax({
  url: "http://search.twitter.com/search.json?q=stackoverflow",
  dataType: "jsonp",
  jsonpCallback: "myFunction"
});

function myFunction(r) { console.log(r); }

Ответ 2

Чтобы добавить немного больше ответа, вы можете использовать следующий код для отображения текста в каждом возвращенном твитте.

$.getJSON("http://search.twitter.com/search.json?callback=?&q=stackoverflow",

function(data){

for (i=0; i<data.results.length; i++){

$("#tweets").append("<p><strong>Text: </strong>" + data.results[i].text + "<BR/>" + "<p><strong>Created at: </strong>" + data.results[i].created_at +"</p><br /><br />");

}
});

Затем в вашем теле html введите следующий div

<div id="tweets"></div>