2010-11-27 2 views
2

Я смотрел API Buzz Google совсем недавно и думал, что он будет похож на API Twitter для запроса - и документация в значительной степени читается именно так. Похоже, что это не так, и я почесываю голову, пытаясь понять, чего мне не хватает ...Google Buzz API возвращает Null через JQuery?

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

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

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

<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

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

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

You can test it out here. Без параметр callback=? (который заменяет jQuery), он пытается сделать XmlHttpRequest для получения данных JSON ... и это заблокировано same origin policy.

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

+0

Thankyou! Я видел это раньше и забыл все об этом - вы просто спасли мне кучу времени, прорывая документацию. – Jonathan 2010-11-27 20:00:05