调用$ .ajax而不将我的画布页面重定向到post url

时间:2012-01-05 05:25:26

标签: facebook jquery

我想通过ajax从我的Facebook画布应用程序提交表单。 如果我在facebook外运行我的应用程序,它可以正常工作。但是,如果我将ajax调用作为Facebook画布应用程序运行,则用户将被重定向到ajax post url! 服务器响应有效json。

我花了一个多小时的时间。 我发现Facebook有一个deprecated FBJS ajax api。新的js api不提供任何ajax功能。上面列出的弃用API的文档说明:

  

如果您要在Facebook.com上构建新应用,请执行您的   应用程序使用HTML,JavaScript和CSS。

从画布应用程序制作ajax帖子的神奇方法是什么?

相关代码归结为:

$(function () {
    $('form').submit(function () {
        if ($(this).valid()) {
            $.ajax({
                url: this.action, // I tried also submitting to the apps.facebook.com/... url, but it made no difference
                type: this.method,
                data: $(this).serialize(),
                success: function (result) {
                    $('#result').html(result);
                    alert('TESTING - WORKS!!');
                }
            });
        }
        return false;
    });
});

1 个答案:

答案 0 :(得分:1)

一夜的睡眠会让你觉得奇怪。昨天发布这个问题时已经很晚了。 当我今天早上醒来时,我知道要检查什么。我通过ajax发布的操作是在需要Facebook身份验证的控制器中...将操作移动到另一个控制器,它现在可以工作了。解决