Я испытываю новый 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 к странице, которой не нужны маркеры доступа (попробуйте его с помощью браузера), но функция успеха возвращает пустой объект или пустой указатель.
Что я делаю неправильно? Благодарный за всю справку!
Вы не можете выполнять такие междоменные запросы AJAX из-за политики одинакового происхождения . Вместо этого используйте Facebook JavaScript SDK , который основан на теге скрипта.
Я уже рассказывал об этом и задавал этот вопрос раньше. Я сделал быстрый учебник, который охватывает именно это и объясняет все это.
Вкратце: JSON не предназначен для междоменного использования в соответствии с политикой same-origin. Однако выход из положения заключается в использовании JSONP, что мы можем сделать в jQuery, используя поддерживаемый параметр обратного вызова в facebook's graph api. Мы можем сделать это, добавив параметр в ваш url, например
https://graph.facebook.com/19292868552?callback=?
используя callback=? jQuery автоматически изменяет ?, чтобы обернуть json в вызов функции, что позволяет jQuery успешно разобрать данные.
Также попробуйте использовать метод $.getJSON.
...Graph API поддерживает JSONP. Просто передайте callback=methodname в качестве дополнительного параметра, и возвращаемое содержимое будет обернуто в вызов функции, что позволит вам использовать динамически вставляемый тег сценария для получения этих данных. http://forum.developers.facebook.com/viewtopic.php?pid=253084#p253084