我有一个 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/