首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >捕获FB edge.create事件时的多个请求

捕获FB edge.create事件时的多个请求
EN

Stack Overflow用户
提问于 2010-12-06 00:34:38
回答 2查看 1.6K关注 0票数 1

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

代码语言:javascript
复制
FB.Event.subscribe('edge.create', function(href, widget) {
    console.log(href, widget);
});

我的代码:

代码语言:javascript
复制
    FB.Event.subscribe('edge.create', function(href, widget) {
        $.ajax({
            type: "POST",
            url: "/votes/register",
            data: "href="+href, 
            dataType: 'json',
            success: function(data){
                $(".list-submissions").html(data["html"])
            }
        });
        return false;       
    });

或者我可以使用django从函数端阻止它?下面是我的函数代码:

代码语言:javascript
复制
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')
EN

回答 2

Stack Overflow用户

发布于 2011-01-17 17:00:45

我确实面临着稍微相同的问题,一直在使用AJAX创建喜欢的按钮,具体到内容,但' edge.create‘一些如何存储事件和递增edge.create事件,当我点击另一个像FB的小工具时触发多次。

我的头被撞得这么厉害,直到现在还不走运:

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

最后我破解了它,只是将我从response对象得到的响应与我需要传递的响应进行了比较,这是可行的。

代码语言:javascript
复制
FB.Event.subscribe('edge.create', function(response) { 
            if ( response.toString() == shareUrl.toString() ) {} }
票数 1
EN

Stack Overflow用户

发布于 2010-12-08 10:50:58

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

代码语言:javascript
复制
<script src="http://connect.facebook.net/en_US/all.js"></script>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4359840

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档