【问题标题】:404 retrieving Twitter followers using JQuery getJSON404 使用 JQuery getJSON 检索 Twitter 关注者
【发布时间】:2012-01-28 02:06:17
【问题描述】:

我刚刚开始使用 Twitter API 来使用 jQuery 检索数据。我已经使用 API ok 来检索有关单个用户的信息,例如https://twitter.com/users/show/codinghorror.json

当我尝试检索给定用户关注的所有用户时,我使用的是相同的检索模式,但出现 404 错误(看起来我的回调没有正确接收 json 对象,而是附加了它以某种方式访问​​ URL)

我正在使用以下代码:

getTwitterUserFriends: function() {
            var user = 'codinghorror';
            var url = 'http://api.twitter.com/1/friends/ids.json?screen_name='+user+'?callback=?';
            $.getJSON(url, function(data) {
                alert('call succeeded' + data.ids);
            });
        },  

在 chrome 中,控制台显示以下错误:

GET https://api.twitter.com/1/friends/ids.json?screen_name=codinghorror?callback=jQuery15201747908447869122_1324917568956&_=1324917580929 404 (Not Found)

但是,如果我直接浏览到 URL https://api.twitter.com/1/friends/ids.json?screen_name=codinghorror,那么我可以看到正在返回的结果对象。

我认为我的回调有一些简单的错误,但看不到它是什么,因为我上面使用的方法已适用于其他 API 调用,因此非常感谢任何帮助!

【问题讨论】:

    标签: javascript jquery twitter jsonp


    【解决方案1】:

    您的 URL 语法不正确。 “回调”参数应该用“&”分隔,而不是“?”。

    var url = 'http://api.twitter.com/1/friends/ids.json?&screen_name='+user+'&callback=?';
    

    您也应该对用户名进行 URL 编码:

    var url = 'http://api.twitter.com/1/friends/ids.json?&screen_name=' +
      escapeURIComponent(user) + 
      '&callback=?';
    

    我也不确定为什么“screen_name”参数前有一个“&”。

    【讨论】:

    • 我一直在关注以下使用 ?callback 调用 jquery JSONP 行为的示例:tympanus.net/codrops/2011/04/13/interactive-google-map
    • 同意 url 编码,这里为了简单起见忽略了
    • 切换到 &callback 并且成功了,谢谢。阅读示例时一定忽略了一些东西......
    • 啊,只是大脑绕道日。其他示例回调是查询字符串中的唯一参数,因此?不是 &。我曾认为使用 ?在这种情况下
    • 请注意:如果您使用 jQuery 并且回调变量称为 callback,则无需设置:var url = 'http://api.twitter.com/1/friends/ids.json?&screen_name='+user
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-20
    • 2023-03-20
    • 1970-01-01
    • 2012-06-03
    • 2013-06-11
    相关资源
    最近更新 更多