我需要使用twitter api请求使用jquery进行Twitter搜索。阅读documentation后,我写了这段代码:
$.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。 原点http://localhost/twitter不是 允许的 访问控制允许来源。 search.json无法加载资源
问题是什么?
答案 0 :(得分:30)
您需要以不同的方式编写它,如下所示:
$.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); }
答案 1 :(得分:3)
只需在答案中添加更多内容,您就可以使用以下代码在每条返回的推文中显示文字。
$.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>