简体   繁体   中英

ajax call to send access token fail

Hello I'm trying to allow login in my app through facebook, and than I want to get some info with the access token I'm getting.

I'm trying to pass the access token from facebook js sdk to a webmethod on the server for me to use it later, but the call is failing.

here's my aspx:

<html>
<head>
<title>Facebook Login Authentication Example</title>
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>
</head>
<body>
<script>


    // Load the SDK Asynchronously
    (function (d) {
        var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];
        if (d.getElementById(id)) { return; }
        js = d.createElement('script'); js.id = id; js.async = true;
        js.src = "//connect.facebook.net/en_US/all.js";
        ref.parentNode.insertBefore(js, ref);
    }(document));

    // Init the SDK upon load
    window.fbAsyncInit = function () {
        FB.init({
            appId: '474928559284763', // App ID
            channelUrl: '//' + window.location.hostname + '/channel', // Path to your Channel File
            status: true, // check login status
            cookie: true, // enable cookies to allow the server to access the session
            xfbml: true  // parse XFBML
        });

        // listen for and handle auth.statusChange events
        FB.Event.subscribe('auth.statusChange', function (response) {
            if (response.authResponse) {
                // user has auth'd your app and is logged into Facebook

                var dataString = JSON.stringify({ access_T: response.authResponse.accessToken });
                alert(dataString);
                $.ajax({
                    type: "POST",
                    async: false,
                    url: "Default2.aspx/save_access_token",
                    data: dataString,
                    contentType: "application/json; charset=utf-8",
                    dataType: "json",
                    success: function (result) {


                    },
                    error: function (result) {
                        alert(result.d);
                    }
                });


                FB.api('/me', function (me) {
                    if (me.name) {
                        document.getElementById('auth-displayname').innerHTML = me.name;


                    }
                })
                document.getElementById('auth-loggedout').style.display = 'none';
                document.getElementById('auth-loggedin').style.display = 'block';
            } else {
                // user has not auth'd your app, or is not logged into Facebook
                document.getElementById('auth-loggedout').style.display = 'block';
                document.getElementById('auth-loggedin').style.display = 'none';
            }
            //here

            //
            $("#auth-logoutlink").click(function () { FB.logout(function () { window.location.reload(); }); });
        });
    }
</script>
<h1>
Facebook Login Authentication Example</h1>
<div id="auth-status">
<div id="auth-loggedout">

<div class="fb-login-button" autologoutlink="true" scope="email,user_checkins">Login with Facebook</div>
</div>
<div id="auth-loggedin" style="display: none">
Hi, <span id="auth-displayname"></span>(<a href="#" id="auth-logoutlink">logout</a>)
</div>
</div>
</body>
</html>

here's my webmethod:

[WebMethod(EnableSession = true)]
    public static void save_access_token(string access_T)
    {
        HttpContext.Current.Session["a_t"] = access_T;
    }

EDIT:

I checked to see what is written on the post and here it is:

在此处输入图片说明

Problem solved. something with the web form was not right, when I started a new one it worked.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM