2010-11-27 67 views
2

最近我一直在尋找Google Buzz API,並認爲它會類似於Twitter API來查詢 - 而且文檔非常類似於這樣的內容。它似乎不會,但我撓我的頭試圖找出我失蹤的東西...Google Buzz API通過JQuery返回Null?

作爲一個例子,如果你在瀏覽器中扔下面的URL;

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

它返回預期的數據。但是,如果您在相同的URL(如下所列)中運行一些相當簡單的JQuery代碼,它將返回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

謝謝!我之前看到過這個,並且忘記了一切 - 你只是通過文檔爲我節省了一大堆時間。 – Jonathan 2010-11-27 20:00:05