jQuery JSONP twitter搜索请求有问题

时间:2011-03-10 17:16:00

标签: php javascript jquery api jsonp

使用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);

遗憾的是,它不起作用。我有这个错误:

  

NOT_FOUND_ERR:DOM异常8:An   尝试引用节点   在它不存在的环境中。

基本上,每当我尝试在另一个函数中调用我的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({结果...

并且不解释jsonp字符串。

有任何线索,任何提示?

Thanx很多!

1 个答案:

答案 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]);
            }
        }
    });
}