2013-03-22 64 views
2

即时通讯尝试访问使用json和jquery(仅公共推文)的twitter数据库。我写了一个函数。那就是:页面加载使用json访问公共推文

$(document).ready(function(){ 
alert("1"); 
$("button").click (function(){ 
    alert("2"); 
    $.getJSON("http://search.twitter.com/search.json?q=messi", function(data){ 
     alert("3"); 
    }); 
    alert("4"); 
}); 

} 后出现警报,说1,符合市场预期。当我点击按钮时,出现两个警报,分别说2和4。看来getJSON函数有问题,我无法解决它。

回答

1

您的代码通过发出跨域请求侵犯了Same Origin Policy

您可以通过它JSONP要求解决这个问题 - 这是不是一个Ajax请求的,不受同源策略 - 通过添加callback=?参数的查询字符串:

$.getJSON("http://search.twitter.com/search.json?q=messi&callback=?", function(data){ 
    alert("3"); 
}); 

Fiddle

jQuery.getJSON reference

当请求URL包含callback=?参数jQuery的自动假设它作为JSONP请求并将此abstra这使得它看起来像一个Ajax请求。您可以使用包含解析的JSONP响应的data对象。

ps。你可能想看看Dev Tools'(或Firebug的)console的发展。与alert不同,它是非阻塞的,可让您显示各种数据类型和嵌套数据结构。

+1

感谢您的回复。这对我帮助很大。 – otp 2013-03-22 22:03:58