加载jquery ajax后没有显示FB.ui对话框

时间:2014-10-04 02:06:11

标签: javascript jquery ajax facebook

这是脚本

window.fbAsyncInit = function() {
            FB.init({
                appId      : 'xxxxxx',
                xfbml      : true,
                version    : 'v2.1'
            });

            $.ajax({
                url: 'save.php',
                dataType: 'JSON',
                method: 'POST',
                data: {image_data: img_src, save2server: 'y'},
                success: function(response){
                    FB.ui({
                        method: 'feed',
                        link: response.url,
                    }, function(r){

                    });
                }
            });
        }

ajax请求成功了,我处理它,但对话框没有出现......有什么线索?

2 个答案:

答案 0 :(得分:0)

您是否包含Facebook SDK脚本?如果没有,请在打开body标签后包括它:

<script>
(function(d, s, id){
     var js, fjs = d.getElementsByTagName(s)[0];
     if (d.getElementById(id)) {return;}
     js = d.createElement(s); js.id = id;
     js.src = "//connect.facebook.net/en_US/sdk.js";
     fjs.parentNode.insertBefore(js, fjs);
   }(document, 'script', 'facebook-jssdk'));
</script>
祝你好运!

答案 1 :(得分:0)

对于有同样问题的人,可以回答:https://stackoverflow.com/a/7666936/1756281

  

必须在Safari中为用户启动的操作(单击)调用FB.login或FB.ui方法,以便FB.UIServer呈现新窗口/弹出窗口/ iframe。   如果您尝试在网络回调事件上调用这些方法,它将被阻止,并且您所描述的异常将发生