jQuery.getJSON不适用于twitter

任何人都可以告诉我为什么这个jQuery函数不起作用。 它没有引起alert

 $.getJSON('http://api.twitter.com/1/statuses/user_timeline.json?', { screen_name: 'samajshekhar', count: '5', }, function (data) { alert('hello world from twitter'); }); 

在fiddler中,我可以看到已经返回了预期的JSON。

但是,当使用jQuery文档中的示例代码调用flicker的api时,它会按预期提供alert

 $.getJSON('http://api.flickr.com/services/feeds/photos_public.gne?jsoncallback=?', { tags: 'cat', tagmode: 'any', format: 'json' }, function(data) { alert('hello world from flicker'); }); 

这是JS Bin上的示例代码

我尝试使用facebook的图形API仍然没有alert

在示例代码中,我尝试使用getJSON调用facebook,twitter,flicker,只提出闪烁的调用alert

您需要将一个回调参数附加到url,以便它成为一个jsonp调用。

 http://api.twitter.com/1/statuses/user_timeline.json?callback=? 

这两个示例之间的区别在于Flickr API调用返回JSONP结果,而Twitter API调用返回JSON结果。 Twitter调用,因为响应是JSON,违反了同源策略 ,该策略阻止运行源自另一个域的脚本; 另一方面,JSONP响应不受此规则的约束。

正如其他用户指出的那样,追加’?callback =?’ 请求URL和Twitter API响应将采用JSONP的forms。

您在url中没有JSONP参数

 $.getJSON('http://api.twitter.com/1/statuses/user_timeline.json?jsoncallback=?',