我在使用jsonp search.json正确检索Twitter数据时遇到了一些困难。jQuery JSONP 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);
不幸的是不起作用。我有此错误:
NOT_FOUND_ERR: DOM Exception 8: An attempt was made to reference a Node in a context where it does not exist.
基本上,我这得到了每次我试图打电话给我getTweets()功能的函数内部的时间... :(
其他解决办法,我尝试:
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({results...
而且JSONP字符串不解释..
任何线索在此,任何暗示?
非常感谢!
我刚刚在Chrome中测试没有问题。我做的唯一改变是用'console.log(jsonp)'替换'tw_callback'的内容。你使用什么浏览器,并且你在多个浏览器中遇到同样的问题?这应该没有影响,但你可以缩短'setInterval'到'setInterval(getTweets,1000 * interval_tourniquet);' – abraham 2011-03-11 03:29:30
不幸的是,它不适用于我的Chrome或Safari .. :( – guillaumepotier 2011-03-11 08:41:39