Google Buzz API возвращает ноль через JQuery? - PullRequest
2 голосов
/ 27 ноября 2010

Я смотрел на API Google Buzz совсем недавно и подумал, что он будет похож на API Twitter для запросов - и документация почти так и выглядит Хотя, похоже, нет, и я чешу голову, пытаясь понять, чего мне не хватает ...

Например, если вы бросите следующий URL в браузер;

http://www.googleapis.com/buzz/v1/people/jonathan.beckett/@groups/@followers?alt=json

Возвращает ожидаемые данные. Однако, если вы выполняете довольно простой код JQuery по тому же URL-адресу (как указано ниже), он возвращает ноль.

<html>
<head>
    <title>Buzz Wall of Awesome</title>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js" language="javascript"></script>
</head>
<body>
    <div>Buzz ID <input type="text" id="buzz_id" value="jonathan.beckett" /> <button id="following_button">Following</button> <button id="followers_button">Followers</button></div>
    <div id="results"></div>
    <script language="Javascript">
        $(document).ready(function(){
         var url = "http://www.googleapis.com/buzz/v1/people/jonathan.beckett/@groups/@followers?alt=json";
         $.getJSON(url,{}, function(data) { alert(data); });
        });
    </script>
</body>
</html>

Есть идеи, почему?

1 Ответ

1 голос
/ 27 ноября 2010

Здесь вам нужно вызвать поведение JSONP, добавив к URL-адресу &callback=?, например:

 var url = "http://www.googleapis.com/buzz/v1/people/jonathan.beckett/@groups/@followers?alt=json&callback=?";

Вы можете проверить это здесь . Без параметра callback=? (который заменяет jQuery) он пытается создать XmlHttpRequest для получения данных JSON ... и это блокируется той же политикой происхождения .

Добавляя параметр (, если сервер поддерживает его, и он поддерживает это здесь), вы заставляете $.getJSON() использовать JSONP вместо этого, что работает совершенно по-другому, создавая тег <script>, который работает в междоменной области, если ответ является допустимым JavaScript.

...