Используя новый api-график в facebook, ajax звонки возвращают ноль (пусто) - PullRequest
6 голосов
/ 29 июня 2010

Я пробую новый график API для Facebook.Я пытаюсь получить некоторые данные, используя jquery ajax.Это пример моего кода JavaScript, очень простой ...

var mUrl = 'https://graph.facebook.com/19292868552';
   $.ajax({
        url: mUrl,
        dataType: 'json',
        success: function(data, status) {
          $('#test').html(data);
          alert(data);

      },
      error: function(data, e1, e2) {
        $('#hello').html(e1);  
      }
   });

URL-адрес страницы, которая не нуждается в токенах доступа (попробуйте использовать браузер), но функция успеха возвращает пустойобъект или нуль.

Что я делаю не так?Благодарю за помощь!

Ответы [ 4 ]

10 голосов
/ 10 августа 2010

Я рассмотрел это и задавал этот вопрос раньше.Я сделал краткое руководство по , которое охватывает именно это, а объясняет все это .

Вкратце: JSON не предназначен для междоменного использования в соответствии с его политикой того же происхождения.Однако обходной путь заключается в использовании JSONP, который мы можем сделать в jQuery, используя поддерживаемый параметр обратного вызова в графе API Facebook.Мы можем сделать это, добавив параметр в ваш URL-адрес, например

https://graph.facebook.com/19292868552?callback=?

, используя callback =?JQuery автоматически меняет?обернуть json в вызов функции, который затем позволяет jQuery успешно проанализировать данные.

Также попробуйте использовать метод $ .getJSON.

4 голосов
/ 13 января 2013

Я пытался сделать что-то подобное, при тестировании мне удалось получить рабочий результат, который я сохранил на jsFiddle: http://jsfiddle.net/8R7J8/1/

Сценарий:

var facebookGraphURL = 'https://graph.facebook.com/19292868552';
$.ajax({
    url: facebookGraphURL,
    dataType: 'json',
    success: function(data, status) {
      $( '#output' ).html('Username: ' + data.username);
    },
    error: function(data, e1, e2) {
      $( '#output' ).html(e2);
    }
})

HTML:

<html>
  <body>
    <div id="output">BorkBorkBork</div>
  </body>
</html>

Надеюсь, это поможет! :)

1 голос
/ 01 августа 2010

... Graph API поддерживает JSONP.Просто передайте callback = methodname в качестве дополнительного параметра, и возвращаемое содержимое будет заключено в вызов функции, что позволит вам использовать динамически вставленный тег сценария для получения этих данных.http://forum.developers.facebook.com/viewtopic.php?pid=253084#p253084

0 голосов
/ 29 июня 2010

Вы не можете выполнять междоменные AJAX-запросы из-за политики одного источника .Вместо этого используйте Facebook JavaScript SDK , который основан на теге скрипта.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...