FB时的多个请求边缘.创建事件已捕获

2024-04-20 11:13:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我想用facebook的like按钮在我的页面上投票。不幸的是,当点击“Like”时,我收到了3-5个对我函数的请求,而不是只有一个。有没有办法防止这种情况发生?样本代码:

FB.Event.subscribe('edge.create', function(href, widget) {
    console.log(href, widget);
});

我的代码:

^{pr2}$

或者我可以用django从函数的一侧阻止它?这是我的功能代码:

def register_vote(request):
    ip = request.META['REMOTE_ADDR']
    url = request.POST.get("href", "")   
    id = os.path.basename(url)

    try:
        vote = Vote.objects.filter(ip=ip, id=id)
    except:
        vote = None

    if not vote:
        vote = Vote(ip=ip, uid=id)
        vote.save()

    html = render_finalists(request)
    ajax = simplejson.dumps({
        "html": html
    }, cls=LazyEncoder)
    return HttpResponse(ajax, mimetype='application/javascript')

Tags: 函数代码ipidurlfacebookrequesthtml
2条回答

我也面临着同样的问题,一直在使用AJAX动态创建类似按钮,特定于内容,但是'边缘.创建'一些如何存储事件和递增边缘.创建当我点击另一个类似FB的小部件时,会触发多次事件。在

蜜蜂打我的头那么厉害,到现在还没有运气

任何快速的帮助,都应该感谢。在

最后我破解了它,把我从response对象得到的响应与我需要传递的响应进行了比较,结果很好。在

FB.Event.subscribe('edge.create', function(response) { 
            if ( response.toString() == shareUrl.toString() ) {} }

如果Facebook core JS SDK被多次引用,即以下脚本标记(或变体)多次被引用,您可能会收到多个回调函数的请求:

<script src="http://connect.facebook.net/en_US/all.js"></script>

相关问题 更多 >