C# Facebook SDK canvasautroize属性重定向我的ajax调用,不会';无法到达控制器代码
我有一个FB应用程序,可以很好地处理MVC内部的回发,但是当我尝试使用jquery$.post()将一些数据发布到具有requireauthorize属性的控制器时,FB会重定向它,我无法让它工作。它只返回一块脚本代码,我相信这是来自FB或其他东西的嘲笑 示例:UI按钮单击代码C# Facebook SDK canvasautroize属性重定向我的ajax调用,不会';无法到达控制器代码,c#,jquery,asp.net-mvc,facebook,facebook-c#-sdk,C#,Jquery,Asp.net Mvc,Facebook,Facebook C# Sdk,我有一个FB应用程序,可以很好地处理MVC内部的回发,但是当我尝试使用jquery$.post()将一些数据发布到具有requireauthorize属性的控制器时,FB会重定向它,我无法让它工作。它只返回一块脚本代码,我相信这是来自FB或其他东西的嘲笑 示例:UI按钮单击代码 //Client side JS button click event $.post("/Friends/Save", "{ 'requestIds':'"+ response.request_ids + "'}", f
//Client side JS button click event
$.post("/Friends/Save", "{ 'requestIds':'"+ response.request_ids + "'}", function (data) {
alert("Friend requests saved!");
});
我的MVC控制器代码:
[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控制器方法(通过[AcceptVerbs(HttpVerbs.Get)]和[AcceptVerbs(HttpVerbs.Post)]),并且只在Get方法上放置[CanvasAuthorize]属性。当我执行ajax Post时,我会在Post中包含已签名的请求,我可以使用该请求获取访问令牌。Hi Pat!谢谢你的好消息。请您发布一段代码,显示带有签名请求的帖子,以及使用获取访问令牌的服务器端代码,好吗?我对这个FB应用程序的世界有点陌生,随着不断的变化,对我来说更加困难。。。我将非常感激!我相信我在网上找到了一些东西这就是你在做的吗?假设在通过会话令牌发送时,canvasAuthorization属性不需要执行重定向,对吗?该博客条目中的方法看起来与我可以使用的基本方法相同。他正在传递从Javascript客户端库获得的auth_令牌。事实上,我自己也这样做了,并且通过了签名的请求。在生产中,我记录了一些错误,其中由于我不理解的原因,auth_令牌被传递为null,在这种情况下,我尝试解密已签名的请求,并从中找到一个好的auth_令牌。