响应.$post jquery后,重定向asp不起作用

本文关键字:重定向 asp 不起作用 post jquery 响应 | 更新日期: 2023-09-27 18:02:23

我做了一些事情,通过将值发送到currentpage

来传递Facebook响应
 function testAPI() {
            console.log('Welcome!  Fetching your information.... ');
            FB.api('/me', function (response) {
                $.post('http://localhost:50790/TestPage.aspx',
                { fbid: response.id, firstname: response.first_name, lastname: response.last_name, email: response.email, bday: response.birthday },
                function (result) {
                });
                console.log('Good to see you, ' + response.name + response.id + response.email + response.gender + response.birthday + '.');
            });
        }

,我在代码后面做了一些检查:

  protected void Page_Load(object sender, EventArgs e)
        {
            var fbid = Request.Form["fbid"];
            var fname = Request.Form["firstname"];
            var lname = Request.Form["lastname"];
            var email = Request.Form["email"];
            var bday = Request.Form["bday"];
            if (!Page.IsPostBack)
            {
                if (fbid != null)
                {
                    CheckFBLogin(fbid.ToString());
                }
            }
        }

我的测试是在CheckFBLogin上,如果结果ok,它会让用户登录到网站,否则它应该重定向到其他页面/注册页面。

 public void CheckFBLogin(string Fbid)
        {

            CustomerSelfCareSoapClient service = new CustomerSelfCareSoapClient();
            service.ClientCredentials.UserName.UserName = _Username;
            service.ClientCredentials.UserName.Password = _Password;
            GResult result = service.CheckFBLogin(Fbid.ToString(), "");
            if (result != null)
            {
                if (result.Code == 100)
                {
                    //login
                }
                else
                {
                    Response.Redirect("~/callback.aspx", true);
                }
            }
        } 

我不知道发生了什么,我通常做这样的检查登录,但纯asp和c#。我知道为什么页面不能重定向吗?

响应.$post jquery后,重定向asp不起作用

我可以用Mono复制这种行为。在我的系统上,问题是jquery的$post()方法实际上启用了Page。后面代码中的IsPostBack属性,以便if (!Page.IsPostBack) {}条件中的所有逻辑都无法运行。

我的建议是使用ASP。. NET的[WebMethod]属性。Dave Ward很好地记录了这一点。如果要进行大量异步客户端JSON调用,可以考虑使用ASP。. NET的MVC实现,如果你的项目范围允许的话