代码之家  ›  专栏  ›  技术社区  ›  Benny

使用jQuery的跨域请求在Facebook应用程序中不起作用

  •  0
  • Benny  · 技术社区  · 15 年前

    我想发出一个HTTP请求,以便在我的facebook应用程序中接收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 回复  |  直到 15 年前
        1
  •  0
  •   Ganesh Krishnan    14 年前

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

    例如

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

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

    干杯

    推荐文章