JS Facebook API请求似乎打破了会话

时间:2013-04-05 09:01:46

标签: javascript facebook firefox firefox-addon facebook-apps

我有一个firefox扩展,通过XMLHttpRequest请求不同的API。然而,Facebook喜欢/分享/评论计数请求导致在一些在线商店和一些网站注销。

例如,GMX webmail必须在每次点击后恢复会话。一些在线商店似乎松开了会议,因此有一个空篮子。

仅在启用Facebook请求时才会出现此问题。

请求网址

http://api.facebook.com/method/fql.query?query=SELECT%20normalized_url,%20share_count,%20like_count,%20comment_count,%20click_count,%20total_count%20FROM%20link_stat%20WHERE%20url=%22www.heise.de%22&format=JSON

请求的Javascript代码

        var querystring = facebookURL + encodedUrl + facebookURLParams; // looks like the above
        var mFacebookRequest = new XMLHttpRequest();
        mFacebookRequest.onload = parseFacebookResponse;
        mFacebookRequest.open( "GET", querystring );
// already tried without user-agent
        mFacebookRequest.setRequestHeader( "User-Agent", "Mozilla/4.0 (compatible; GoogleToolbar 2.0.114-big; Windows XP 5.1)" );

parseFacebookResponse函数

         function parseFacebookResponse() {
                var fbcount = "-";
                var share_count = 0;
                var like_count = 0;
                var comment_count = 0;

                var aDoc = mFacebookRequest.responseText;
                if( aDoc == null || aDoc == -1 || aDoc.length == 0 )
                {

                } else {

                    var jsonDoc = JSON.parse( aDoc );
                    var temp = jsonDoc[0];

                    share_count     = parseInt(temp['share_count']);
                    like_count      = parseInt(temp['like_count']);
                    comment_count   = parseInt(temp['comment_count']);



                }

代码运行正常,并显示数字。但它让我退出了。有什么想法吗?!

1 个答案:

答案 0 :(得分:1)

您正在制作跨域XML HTTP请求。这加上GMX网站设置一个即将到期的会话cookie的可能性 - 您的会话被杀死。这只是一个假设。