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>