2010-11-27 77 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