这是脚本
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请求成功了,我处理它,但对话框没有出现......有什么线索?
答案 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。 如果您尝试在网络回调事件上调用这些方法,它将被阻止,并且您所描述的异常将发生