使用jsonp search.json正确检索Twitter数据时遇到了一些困难。
当我只获取一次数据时,它与这段代码完美配合:
function getTweets(){
$.ajax({
url: 'http://search.twitter.com/search.json',
type: 'GET',
dataType: 'jsonp',
jsonpCallback: 'tw_callback',
data: 'q=<?php echo urlencode($twitter_search); ?>+-RT&rpp=100'
});
}
function tw_callback(jsonp){
for( key in jsonp['results'] ) {
var tweet = jsonp['results'][key]['text'] ;
var from = jsonp['results'][key]['from_user'];
var avatar = jsonp['results'][key]['profile_image_url'];
tw_container.push([tweet,from,avatar]);
}
}
但是当我尝试每隔xx秒刷新一次数据时,使用setInterval:
setInterval(function () { getTweets(); }, 1000*interval_tourniquet);
遗憾的是,它不起作用。我有这个错误:
基本上,每当我尝试在另一个函数中调用我的getTweets()函数时,我得到了这个... :(NOT_FOUND_ERR:DOM异常8:An 尝试引用节点 在它不存在的环境中。
我试过的其他解决方案:
function getTweets(){
$.ajax({
url: 'http://search.twitter.com/search.json',
type: 'GET',
dataType: 'jsonp',
data: 'callback=tw_callback&q=<?php echo urlencode($twitter_search); ?>+-RT&rpp=100'
});
}
这种方式在我的另一台服务器上与我自己的jsonp api完美配合,但Twitter两次回复我的回调:
tw_callback(tw_callback({结果...
并且不解释jsonp字符串。
有任何线索,任何提示?
Thanx很多!
答案 0 :(得分:1)
尝试使用以下更简单的方法重写您的函数。
function getTweets(){
$.ajax({
url: 'http://search.twitter.com/search.json?q=<?php echo urlencode($twitter_search); ?>&rpp=100&callback=?',
dataType: 'jsonp',
success: function(){
for( key in jsonp['results'] ) {
var tweet = jsonp['results'][key]['text'] ;
var from = jsonp['results'][key]['from_user'];
var avatar = jsonp['results'][key]['profile_image_url'];
tw_container.push([tweet,from,avatar]);
}
}
});
}