无法在IE上获得Facebook好友阵列,但在其他浏览器上工作

时间:2012-10-16 22:42:24

标签: ajax facebook json facebook-graph-api facebook-access-token

此功能适用于Chrome和Firefox,但不适用于IE9,其中errorHandler正在记录此错误消息:

ERROR:  getFriendsArray {"readyState":0,"status":0,"statusText":"No Transport"}

getUserAccessToken()返回正确的值。什么可能是什么,只影响IE?

编辑:似乎直接在IE浏览器上https://graph.facebook.com/me/friends返回HTTP 400错误。

function getFriendsArray() {

    var friendsArray = [];

    $.ajax({                                      
        url: 'https://graph.facebook.com/me/friends',
        data: {
            access_token: getUserAccessToken(),
            fields: 'name,picture,gender'
        },
        dataType: 'json',
        cache: true,
        async: false,
        success: function(response) {
            var data = '';
            $.each(response.data, function(indice, item) {
                friendsArray.push(item);
            });                       
        },
        error: function(err) {
            errorHandler('getFriendsArray', JSON.stringify(err));
        }
    });

    return friendsArray.sort(sortByName);   
}

1 个答案:

答案 0 :(得分:1)

$.ajax仅支持使用XMLHttpRequest或XDomainRequest(IE),后者仅支持几种情况,并且如果请求的资源是SSL,则要求您的页面为SSL。

相反,使用FB.api来处理这个以及更多,确保调用通过使用JSONP,XHR,XDomainRequest或Flash。