API для поиска в Твиттере с ошибкой jquery - PullRequest
15 голосов
/ 22 октября 2010

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

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

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

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

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

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

Ответы [ 2 ]

30 голосов
/ 22 октября 2010

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

$.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); }
3 голосов
/ 18 ноября 2011

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

$.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>
...