1

私はこの一見些細な問題に 3 日間取り組んでおり、コードが機能しない理由を完全に使い果たしました。

簡単に言えば、ユーザーが facebook リクエストを受信して​​クリックすると、招待を処理する必要があります。

FB.Event.subscribe('auth.authResponseChange', function (response) {
            if (response.status === 'connected') {
                if (window.location.href.indexOf('app_invite') !== -1 || window.location.href.indexOf('app_request') !== -1) {
                    var inviteeID = response.authResponse.userID;                                    
                    processIncomingInvitation(inviteeID);                    
                }
});

問題は、次の関数で発生します。リクエストが成功$.post()すると、単純なリダイレクトが期待されます。

$.post(url, function (result) {
   window.location.replace('/True?fbapp=fbapp');
}); 

しかし、リダイレクトは無視され、その理由がわかりません。代わりにを入れても、alert('hello');そのコードのビットにヒットしていることがはっきりとわかります。代わりにリダイレクトが無視されるのはなぜですか?

function processIncomingInvitation(inviteeID) {
    var urlParams = {};
    (function () {
        var match,
        pl     = /\+/g,  // Regex for replacing addition symbol with a space
        search = /([^&=]+)=?([^&]*)/g,
        decode = function (s) { 
            return decodeURIComponent(s.replace(pl, " ")); 
        },
        query  = window.location.search.substring(1);

        while (match = search.exec(query)) {
            urlParams[decode(match[1])] = decode(match[2]);
        }
    })();

    var requestType = urlParams.app_request_type;

    if (requestType === "user_to_user") {
        var reqIDlist = urlParams.request_ids.split(',');
        var requestID = reqIDlist[0];

        FB.api(requestID, function (response) {  
            if (response.from !== undefined && response.from !== 'undefined') {
                var inviterID = response.from.id;
                var inviterName = response.from.name.split(" ")[0];
                var url = '/friend/' + inviteeID + '/accept/' + inviterID + '/?fbapp=fbapp';                            
                $.post(url, function (result) {
                    window.location.replace('/True?fbapp=fbapp');
                }); 
                deleteRequest(requestID);
            }
        });
    }
}
4

1 に答える 1