【问题标题】:Facebook jQuery AJAX JSON call - Uncaught SyntaxError: Unexpected token :Facebook jQuery AJAX JSON 调用 - Uncaught SyntaxError: Unexpected token :
【发布时间】:2010-11-08 10:14:11
【问题描述】:

我正在尝试使用以下代码从 facebook 获取 JSON 数据:

var getFriends = function() {
    var friendsURL = 'https://graph.facebook.com/<?= $cookie['uid'] ?>/friends?access_token=<?= $cookie['access_token'] ?>&jsoncallback=?';

    $.getJSON(friendsURL, function(data) {

        var names = "";

        $.each(data.name, function(){
            names += " " + this;
        });

        alert("JSON Data: " + names);
    });

}

每次我在 Chrome 中运行该函数时都会收到此错误:“Uncaught SyntaxError: Unexpected token :”

有什么想法吗?我确保输入“jsoncallback=?”在 url 的末尾使其以 JSONP 形式返回,但我现在已经没有解决方案了。

谢谢, -本

【问题讨论】:

    标签: jquery ajax json facebook


    【解决方案1】:

    graph.facebook.com expects callback in the querystring, not jsoncallback,所以你的 URL 应该像这样触发他们这边的 JSONP(目前你只是得到 JSON):

    var friendsURL = 'https://graph.facebook.com/<?= $cookie['uid'] ?>/friends?access_token=<?= $cookie['access_token'] ?>&callback=?';
    

    【讨论】:

    • 谢谢尼克,这正是我所追求的!!
    【解决方案2】:

    为什么不改用官方的 Javascript SDK?该调用将是:

    FB.api('/userid/friends', function(response) {
      // response is an array of friends
    });
    

    官方库会为你处理细节,所以你不必担心所有的实现细节。

    【讨论】:

    • 当你已经在使用 jQuery 时,将他们的整个 SDK 包含在一个 AJAX 请求中以获取一些数据似乎是 tremendous 矫枉过正......尤其是因为删除 4 个字符就是全部这里需要。
    • 我正在尝试将其保留给 jQuery,但无论如何感谢 Nathan,这是一个有效的答案
    猜你喜欢
    • 1970-01-01
    • 2016-10-30
    • 1970-01-01
    • 1970-01-01
    • 2012-12-12
    • 2015-01-29
    • 2011-12-17
    • 1970-01-01
    • 2011-04-02
    相关资源
    最近更新 更多