使用jQuery的跨域请求在Facebook App中不起作用

时间:2010-09-19 10:07:14

标签: jquery facebook cross-domain

我想发出一个HTTP请求,以便在我的Facebook App中接收facebook.com登录用户的主页内容。该应用程序在iframe中加载。我正在使用James Padolsey制作的jQuery的跨域Ajax mod:http://james.padolsey.com/javascript/cross-domain-requests-with-jquery/。此mod适用于google.com等页面,如示例中所示。

不幸的是,如果我尝试这样的话:

$('#container').load('http://www.facebook.com/');

我没有结果也没有错误。此外,如果我尝试:


$.ajax({
            type: 'POST',
            url: 'http://www.facebook.com',
            success: function(html){
                process(html);
            },
            error: function(){
                debug("error");
            }
        });

我在Firebug控制台中收到错误消息:data.results[0] is undefined。 这个错误在James Padolsey的Ajax mod中,所以它与我在脚本中编写的任何代码没有任何关系。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

JSON不能跨域工作。你需要使用JSONP或者更好的在getJSON调用中使用“callback =?”参数。

例如

$.getJSON("https://graph.facebook.com/me/friends?callback=?&access_token="+fbtoken, function(rtnmsg) {

}

其中fbtoken是您的访问令牌,rtnmsg是返回对象。这个对我有用。

干杯