0

此函数在 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);   
}
4

1 回答 1

0

$.ajax仅支持使用 XMLHttpRequest 或 XDomainRequest (IE),后者仅支持少数场景,如果请求的资源是 SSL,则要求您的页面是 SSL。

取而代之的是使用FB.api,它可以处理这个以及更多问题,确保调用通过 JSONP、XHR、XDomainRequest 或 Flash。

于 2012-10-17T05:16:44.790 回答