c# - Facebook SDK CanvasAutorize 属性重定向我的 ajax 调用并且没有到达 Controller 代码

标签 c# jquery asp.net-mvc facebook facebook-c#-sdk

我有一个 FB 应用程序,它可以很好地处理 MVC 中的回发,但是当我尝试使用 jquery $.post() 将一些数据发布到具有 requireauthorize 属性的 Controller 时,FB 重定向它并且我不能'让它工作。它只返回一段脚本代码,我相信这是来自 FB 或其他东西的重定向。

示例:UI 按钮点击代码

//Client side JS button click event
$.post("/Friends/Save", "{ 'requestIds':'"+ response.request_ids + "'}", function (data) {
    alert("Friend requests saved!");
});

我的 MVC Controller 代码:

[HandleError]
public class FriendsController : Controller
{
    [CanvasAuthorize(Perms = "user_about_me")]
    public JsonResult Save(string requestIds)
    {
        //Save to DB
        //(....)

        return Json(new { Status = "Saved!" });
    }
}

如果我评论该属性,一切正常,任何人都可以帮助我解决如何做到这一点? 我需要检查由 FB 登录用户完成的每个帖子!

提前致谢!祝大家有个愉快的一天!

最佳答案

我遇到了同样的问题。我的解决方案是分离 Get 和 Post Controller 方法(通过 [AcceptVerbs(HttpVerbs.Get)] 和 [AcceptVerbs(HttpVerbs.Post)] )并且只将 [CanvasAuthorize] 属性放在 Get 方法上。当我执行我的 ajax 帖子时,我在帖子中包含签名请求,我可以使用它来获取访问 token 。

关于c# - Facebook SDK CanvasAutorize 属性重定向我的 ajax 调用并且没有到达 Controller 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5002551/

相关文章:

javascript - JS中如何实现条件渲染?

asp.net - 注册外部登录时 CreateUserAsync 失败

asp.net-mvc - MVC 路由捕获文件名作为参数

C#如何发送电子邮件?

javascript - Django 基于类的 View 与 ajax?

c# - 这真的是 Async 吗? IEnumerable<T> 扩展

javascript - 当用户输入 JavaScript 或 jQuery 时,如何调用服务器?

javascript - 从控件事件中获取 html 中的 javascript 结果

c# - 如何使用 C# 中的参数获取和设置 vb6 属性?

c# - 从 Azure SAS URI 创建 BlobContainerClient