在AJAX调用Facebook开放图形对象之后使用jQuery提交表单

问题描述:

我创建了Facebook Open Graph对象和动作。它工作得很好,并且经过了充分测试。问题是我想在数据返回时提交不同的表单。在AJAX调用Facebook开放图形对象之后使用jQuery提交表单

只要是明确的,有两个按钮,用户可以在:

  1. 通过点击“发布”发布项目按钮,提交的“与Facebook发布”的形式或
  2. 点击它将开放图形对象请求发送到Facebook,然后在其返回时从其他按钮提交相同的发布形式。

下面的代码:

$(".publish_with_fb_action").click -> 
$form = $("form.publish_item") 
$.post "https://graph.facebook.com/me/my_app_name:add?item=" + app.showUrl + "&access_token=" + FB.getAccessToken(), (data) -> 
$form.submit() 

同样,这段代码放在Facebook上的项目没有问题。奇怪的是,当我测试相同的代码(jQuery AJAX后)与我的应用程序中的另一个URL它实际上工作并提交表单,但与此特定的代码,它不起作用。

我研究过其他解决方案,例如将$form更改为form甚至form[0],但仍然没有运气。

+1

看起来像coffeescript ??? – adeneo 2013-03-14 21:04:20

+0

是的,你说得对,也许我应该在这个问题上放一个咖啡标签。 -抱歉。 – Dol 2013-03-14 21:07:05

整体解决方案涉及将成功更改为回调条款为总是

$(".publish_with_fb_action").click -> 
    $this = $(this) 
    $form = $(".publish_item") 
    $.post("https://graph.facebook.com/me/<my_app>:add?item=" + app.showUrl + "&access_token=" + FB.getAccessToken() 
).always (data) -> 
    $form.submit() 
    $this.html "added to facebook"