此功能适用于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);
}
答案 0 :(得分:1)
$.ajax
仅支持使用XMLHttpRequest或XDomainRequest(IE),后者仅支持几种情况,并且如果请求的资源是SSL,则要求您的页面为SSL。
相反,使用FB.api
来处理这个以及更多,确保调用通过使用JSONP,XHR,XDomainRequest或Flash。