Кросс-доменные запросы с jQuery не работают в приложении Facebook - PullRequest
0 голосов
/ 19 сентября 2010

Я хочу сделать HTTP-запрос, чтобы получить содержимое домашней страницы вошедшего в систему пользователя facebook.com в моем приложении Facebook. Приложение загружается внутри iframe. Я использую междоменный мод Ajax для jQuery, созданный Джеймсом Падолси: http://james.padolsey.com/javascript/cross-domain-requests-with-jquery/. Этот мод отлично работает для таких страниц, как google.com, как показано в примерах.

К сожалению, если я попробую что-то вроде:

$('#container').load('http://www.facebook.com/');

Я не получаю ни результата, ни ошибок. Кроме того, если я попытаюсь:


$.ajax({
            type: 'POST',
            url: 'http://www.facebook.com',
            success: function(html){
                process(html);
            },
            error: function(){
                debug("error");
            }
        });

Я получаю ошибку в консоли Firebug, которая говорит: data.results[0] is undefined. Эта ошибка находится внутри мода Ajax Джеймса Падолси, поэтому она не имеет ничего общего с предыдущим кодом, который я написал в своем скрипте.

Есть идеи?

1 Ответ

0 голосов
/ 06 октября 2010

JSON не работает кросс-домен.Вам нужно использовать JSONP или, что еще лучше, в вызове getJSON использовать callback =?параметр.

Например,

$.getJSON("https://graph.facebook.com/me/friends?callback=?&access_token="+fbtoken, function(rtnmsg) {

}

Где fbtoken - ваш токен доступа, а rtnmsg - возвращаемый объект.Этот работает для меня.

Приветствия

...